# 3. Referendum Execution Procedure

#### Command Line Quick Start

We use the eosc cmd tool blow. <https://eosc.app/>

Add to your .bashrc or .zshrc file

```
alias bosc= "eosc -u https://api.boscore.io"
```

#### 1. Proposal Submission and Referendum ([eosio.forum](https://github.com/boscore/referendum/tree/master/contracts/eosio.forum))

[![img](https://camo.githubusercontent.com/89b311d251888cb37f998bd7ed930dd09c73e43c/68747470733a2f2f75706c6f616465722e7368696d6f2e696d2f662f4b30714f3552694966566f464e7862552e706e67217468756d626e61696c)](https://camo.githubusercontent.com/89b311d251888cb37f998bd7ed930dd09c73e43c/68747470733a2f2f75706c6f616465722e7368696d6f2e696d2f662f4b30714f3552694966566f464e7862552e706e67217468756d626e61696c)

Proposer proposes proposal

```
bosc tx create eosio.forum propose '{"proposer": "proposer1", "proposal_name": "example", "title": "The title, for list views", "proposal_json": "", "expires_at": "2019-01-30T17:03:20"}' -p proposer1@active
```

Voter votes proposal

```
bosc tx create eosio.forum vote '{"voter": "voter1", "proposal_name": "example", "vote": 1, "vote_json": ""}' -p voter1@active
```

Auditor or BPs comment

```
$ bosc tx create eosio.forum vote '{"voter": "voter1", "proposal_name": "example", "vote": 1, "vote_json": "{\"comment\":\"I vote this newtest proposal\"}"' -p voter1@active
```

#### 2. Auditor Nomination and Elections ([auditor.bos](https://github.com/boscore/referendum/tree/master/contracts/auditor.bos))

Candidate stakes token

```
bosc transfer <CANDIDATE> auditor.bos "100.0000 BOS" -m "stake for auditor.bos"
```

Candidate nominates himself/herself

```
bosc tx create auditor.bos nominatecand '{"cand": "<CANDIDATE>"}' -p <CANDIDATE>@active
```

Voter votes for Auditor Candidate

```
bosc tx create auditor.bos voteauditor '{"voter":"<VOTER>","newvotes":["<CANDIDATE_1>", "<CANDIDATE_2>","<CANDIDATE_3>"]}' -p deniscarrier
```

#### 3. BET/BPs Review and Approve ([escrow.bos](https://github.com/boscore/referendum/tree/master/contracts/escrow.bos))

[![img](https://camo.githubusercontent.com/de1688359235a35cf9ed36d926d62cdcdd857283/68747470733a2f2f75706c6f616465722e7368696d6f2e696d2f662f3059624778684f7071473455354f62542e706e67)](https://camo.githubusercontent.com/de1688359235a35cf9ed36d926d62cdcdd857283/68747470733a2f2f75706c6f616465722e7368696d6f2e696d2f662f3059624778684f7071473455354f62542e706e67)

**Proposal Approved**

**BET Initialize escrow**

```
bosc tx create escrow.bos init '{"sender":"bet.bos","receiver":"<RECEIVER>","approver":"eosio","escrow_name":"<NAME>","expires_at":"2019-09-15T00:00:00","memo":"BOS escrow"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction init.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> init.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the init escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**BET Transfer Fund**

```
bosc tx create eosio.token transfer '{"from": "bet.bos", "to":escrow.bos,"quantity":"100.0000 BOS","memo":"init escorw"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction transfer.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> transfer.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the transfer escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**BET Approve escrow (MSIG)**

Create a proposal tx json

```
bosc tx create escrow.bos approve '{"escrow_name": "<NAME>", "approver":"bet.bos"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction approve.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> approve.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**Claim Escrow 100% (by anyone)**

```
bosc tx create escrow.bos claim '{"escrow_name":"<NAME>"}' -p <CLAIMER>
```

**Review, Approved by BPs, and Claims**

**BET Initialize escrow**

```
bosc tx create escrow.bos init '{"sender":"bet.bos","receiver":"<RECEIVER>","approver":"eosio","escrow_name":"<NAME>","expires_at":"2019-09-15T00:00:00","memo":"BOS escrow"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction init.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> init.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the init escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**BET Transfer Fund**

```
bosc tx create eosio.token transfer '{"from": "bet.bos", "to":escrow.bos,"quantity":"100.0000 BOS","memo":"init escorw"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction transfer.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> transfer.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the transfer escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**BET disapprove and request BPs review**

```
bosc tx create escrow.bos review '{"escrow_name":<ESCROW NAME>,"user":<USER ACCOUNT>,"reviewer":"eosio","memo": "review escrow"}' -p <USER ACCOUNT>
```

BP Reviewed and pass the Proposal Create a proposal tx json

```
bosc tx create escrow.bos approve '{"escrow_name": "<NAME>", "approver":"eosio"}' -p eosio --skip-sign --expiration 36000 --write-transaction review.json
```

Some one post the MSIG Proposal (request top 30 bps)

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> review.json --request-producers
```

BP Approve the escrow (MSIG)

```
bosc tx create escrow.bos approve '{"escrow_name":"<NAME>","approver":"eosio"}' -p <BP ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```

**BET Claim 90% of Fund (for proposer), only if the approver account is eosio**

```
bosc tx create escrow.bos claim '{"escrow_name":"<NAME>"}' -p <ACCOUNT>
```

**BET manually Transfer 10% of fund from the escrow to each BPs and auditors (for BET), only if the approver account is eosio**

BET Approve the init escrow (7 BET MSIG)

```
bosc tx create eosio.token transfer '{"from": "escrow.bos", "to":<ACCOUNT>,"quantity":"0.1000 BOS","memo":"Thanks for your opinions"}' -p bet.bos --skip-sign --expiration 36000 --write-transaction approve.json
```

Someone propose MSIG proposal

```
bosc multisig propose <PROPOSER> <PROPOSAL NAME> transfer.json --request <BET ACCOUNT>,<BET ACCOUNT>...(7 accounts)
```

BET Approve the init escrow (7 BET MSIG)

```
bosc multisig approve <PROPOSER> <PROPOSAL NAME> <BET ACCOUNT>
```

Execute MSIG (by anyone)

```
bosc multisig exec <PROPOSER> <PROSOAL NAME> <EXECUTER> -p <EXECUTER>
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boscore.gitbook.io/docs/essentials/bos-ecosystem/boscore-improvement-proposal/3.-referendum-execution-procedure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
