How to deploy a Multisig Wallet
Create a Multisig wallet with TVM CLI
Prerequisites
latest Rust release
cargo
Build and install CLI tool
The path to the tvm-cli
is now publicly accessible. You can also add it to your environment variables (ENVs).
export PATH=$PATH:~/tvm-sdk/target/release
Prepare wallet binary and ABI
Create a folder:
At the moment this wallet is undergoing formal verification. Wallet code may be updated during this process. However, the API of the wallet will remain the same.
Configure CLI tool
Generate seed phrase, keys and address
In Acki Nacki blockchain, the Multisig wallet address depends on its binary code and initial data, which includes the owner's public key.
You can generate everything with one command:
Write down your seed phrase
and store it in a secure location. Never share it with anyone. Avoid storing it in plain text, screenshots, or any other insecure method. If you lose it, you lose access to your assets. Anyone who obtains it will have full access to your assets.
Additionally, ensure the file containing the key pair
is saved in a safe place.
The raw address
is the future Multisig wallet address. Keys are saved to multisig.keys.json
. Be sure to copy your seed phrase if you need it.
Request SHELL tokens
Deploy your Multisig wallet
Once you receive the SHELL tokens, check the state of the pre-deployed contract. It should be Uninit
:
The received SHELL tokens will be displayed in the ecc
field.
Now you are ready to deploy your Multisig wallet using the following command:
The arguments for the constructor must be enclosed in curly brackets:
{<constructor arguments>}
owners
: An array of custodian public keys. Each key must include the0x
prefix.reqConfirms
: The default number of confirmations required to execute a transaction.
The value
parameter must not be zero, as VMSHELL
tokens are used to pay contract execution fees after the exchange.
Check the contract state again. This time, it should be Active
.
In the balance
field, you can see 10,000,000,000 nanoVMSHELL tokens, which were converted from SHELL during deployment (as specified in the value
parameter). The remaining SHELL tokens can be found in the ecc
field at index 2
.
If you need VMSHELL tokens later, simply call the exchangeToken(uint64 value)
method in the Multisig and exchange the required amount.
For example, let's convert 10 SHELL tokens into 10 VMSHELL tokens:
VMSHELL
tokens can be transferred to the balances of other contracts within the same Dapp ID.
However, when transferring to contracts in other Dapp IDs, only SHELL
tokens can be used.
Therefore, you can create a single Multisig contract to replenish the balances of all your contracts with SHELL
tokens, regardless of which Dapp ID they belong to.
How to send tokens from Multisig Wallet
To replenish accounts before deployment, use the following command:
dest
- the transfer target address;value
- the amount of funds (VMSHELL) to transfer (should be0
);cc
- the type of ECC token and amount to transfer;
For example, we transfer 5 SHELL from the Multisig wallet's balance to the address of the future contract, with the fees also being paid from the Multisig wallet's balance:
Last updated