> For the complete documentation index, see [llms.txt](https://docs.liquidapps.io/liquidapps-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.liquidapps.io/liquidapps-documentation/eosio-guides/governance-guides/how-to-propose-an-msig.md).

# How to Propose an MSIG

## Option 1 bloks.io:

Use bloks to propse

* Documentation <https://docs.bloks.io/wallet/msig>
* <https://www.bloks.io/wallet/msig>

## Option 2 vscode + nodejs:

### To propose an msig you need to know:

* account proposing the msig
* proposer's private key
* permission level to use for proposer
* expiration of msig
* proposal name
* actions you wish to propose (can do multiple in 1 msig, as many as around 100 per msig)

Once you have that, you can clone this example repo: <https://github.com/NatPDeveloper/example-eosio-msig>

Then you just need to:&#x20;

1. update those fields in the `index.js` file
2. 2\. run `npm i` to install the nodejs modules
3. 3\. run `node index.js` which will push the msig

### To install nodejs:

```bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
nvm install 16
nvm use 16
```

And to do all of this you can use an IDE (integrated developer environment, where code is written) such as VS Code: <https://code.visualstudio.com/Download>

## How to use bloks.io's cleos login option to generate actions

Login to <https://bloks.io> using the cleos login option and choose the permission level.  Then go to any contract to where you would push a transaction with Anchor or another wallet and click send where you will be able to copy and paste the action data.&#x20;

```
cleos -u https://eos.greymass.com push transaction '{
  "delay_sec": 0,
  "max_cpu_usage_ms": 0,
  "actions": [
    {
      "account": "eosio",
      "name": "voteproducer",
      "data": {
        "voter": "dappgovfunds",
        "proxy": "proxy4nation",
        "producers": []
      },
      "authorization": [
        {
          "actor": "dappgovfunds",
          "permission": "owner"
        }
      ]
    }
  ]
}'
```

Turn into:

```
const actions = [
    {
        "account": "eosio",
        "name": "voteproducer",
        "data": {
          "voter": "dappgovfunds",
          "proxy": "proxy4nation",
          "producers": []
        },
        "authorization": [
          {
            "actor": "dappgovfunds",
            "permission": "owner"
          }
        ]
    }
    // add more actions
    // ,{
    //     account: "",
    //     name: "transfer",
    //     authorization: [
    //         {
    //             actor: msigAuthAccount,
    //             permission
    //         }
    //     ],
    //     data: {
    //         from: "",
    //         to:"",
    //         quantity:"",
    //         memo:"recover tokens"
    //     }
    // }
]
```
