everx-labs
ever-cli
Rust

Command line tool for TVM compatible networks (Everscale, TON, Venom, Gosh, etc)

Last updated Jan 26, 2026
83
Stars
34
Forks
5
Issues
0
Stars/day
Attention Score
46
Language breakdown
Rust 91.7%
Solidity 8.2%
Shell 0.0%
Files click to expand
README

EVER-CLI

EVER-CLI is a multi-platform command line interface for TVM compatible networks (Everscale, Venom, Gosh, TON).

It allows user to work with keys and seed phrases, deploy contracts, call any of their methods, generate and broadcast messages. It supports specific commands for DeBot, DePool and Multisignature Wallet contracts, as well as a number of supplementary functions.

To access built-in help, use --help or -h flag:

ever-cli --help
ever-cli <subcommand> -h

Table of contents

- Install compiled executable - Install through EVERDEV - Build from source - Prerequisites - Build from source on Linux and macOS - Build from source on Windows - Tails OS secure environment - Put EVER-CLI into system environment - Install ever-cli, completion script and bind them - Windows debug build troubleshooting - Ubuntu 22 troubleshooting - Check version - A note on Windows syntax - 2.1. Set the network and parameter values - 2.1.1. Troubleshooting network connectivity problems - 2.2. Check configuration - 2.3. Clear configuration - 2.4. Configure endpoints map - 2.5. Override configuration file location - 2.6. Override network settings - 2.7. Force json output - 2.8. Debug on fail option - 2.9 Configure aliases map - 3.1. Create seed phrase - 3.2. Generate public key - 3.3. Generate key pair file - 4.1. Generate contract address - 4.2. Deploy contract - 4.3. Generate deploy message offline - 4.3. Get contract status - 4.4. Call method - 4.4.1. Call contract on the blockchain - 4.4.2. Run contract method locally - 4.4.3. Run funC get-method - 4.4.4. Run contract method locally for saved account BOC - 4.5. Generate encrypted message offline - 4.6. Broadcast previously generated message - 4.7. Broadcast previously generated message from a file - 4.8. Decode commands - 4.8.1. Decode BOC file - 4.8.2. Decode message body - 4.8.3. Decode account commands - 4.8.3.1. Decode account data fields - 4.8.3.2. Decode data from the account BOC file - 4.8.4. Decode stateInit fields - 4.9. Generate payload for internal function call - 4.10. Alternative syntax for call, deploy and run commands - 6.1. Send tokens - 6.2. Deploy wallet - 7.1. Configure EVER-CLI for DePool operations - 7.2. Deposit stakes - 7.2.1. Ordinary stake - 7.2.2. Vesting stake - 7.2.3. Lock stake - 7.3. Remove stakes - 7.4. Transfer stakes - 7.5. Withdraw Stakes - 7.5.1. Withdraw entire stake - 7.5.2. Withdraw part of the stake - 7.6. Reinvest Stakes - 7.7. Read DePool answers - 7.8. View DePool events - 7.9. Replenish DePool balance - 7.10. Send ticktock to DePool - 8.1. Create proposal and cast the first vote - 8.2. Vote for proposal - 8.3. Decode proposal comment - 9.1. Get global config - 9.2. NodeID - 9.3. Dump blockchain config - 9.4. Dump several account states - 9.5. Update global config parameter - 9.6. Wait for an account change - 9.7. Make a raw GraphQL query - 9.8. Fee commands - 9.8.1. Call fee command - 9.8.2. Deploy fee command - 9.8.3. Storage fee command - 10.1. How to unfreeze account - 11.1. Debug transaction - 11.2. Debug call - 11.3. Debug run - 11.4. Debug replay transaction on the saved account state - 11.5. Debug deploy - 11.6. Debug message - 11.7. Debug account - 11.8. Render UML sequence diagram

1. Installation

Install compiled executable

Create a folder. Download the .zip file from the latest release from here: https://github.com/everx-labs/ever-cli/releases to this folder. Extract it.

Install through EVERDEV

You can use EVERDEV to install the latest version of EVER-CLI.

everdev ever-cli install

The installer requires NPM to be installed, so it can install packages globally without using sudo. In case of error, manually set environment variable PATH=$PATH:$HOME./everdev/solidity

This command updates EVER-CLI installed through EVERDEV to the latest version:

everdev ever-cli update

This command specifies EVER-CLI version to use and downloads it if needed:

everdev ever-cli set --version 0.8.0

Build from source

Prerequisites

  • Rust latest version
  • OpenSSL
For Linux:
sudo apt-get install libssl-dev (openssl-devel on Fedora)
sudo apt-get install pkg-config

Build from source on Linux and macOS

Install Cargo: https://github.com/rust-lang/cargo#compiling-from-source

Build EVER-CLI tool from source:

git clone https://github.com/everx-labs/ever-cli.git
cd ever-cli
cargo update
cargo build --release
cd target/release

The ever-cli executable is built in the ever-cli/target/release folder. Create a folder elsewhere. Copy the ever-cli executable into the new folder you have created. Or just add ever-cli/target/release to the PATH local variable.

Build from source on Windows

Install Cargo: https://github.com/rust-lang/cargo#compiling-from-source

Build EVER-CLI tool from source:

> git clone https://github.com/everx-labs/ever-cli.git
> cd ever-cli
> cargo update
> cargo build --release
> cd target/release

The ever-cli executable is built in the ever-cli/target/release folder. Create a folder elsewhere. Copy the ever-cli executable into the new folder you have created. Or just add ever-cli/target/release to the PATH local variable.

Tails OS secure environment

For maximum security while working with offline EVER-CLI features (such as cryptographic commands or encrypted message generation), you can use the Tails OS.

Put EVER-CLI into system environment

Optional, Linux/macOS. Use the following command to put the utility into system environment:

export PATH="<everfolderpath>:$PATH"

This step can be skipped, if EVER-CLI was installed through EVERDEV. Otherwise, if you skip this step, make sure you always run the utility from folder containing the utility:

./ever-cli <command> <options>

Install ever-cli, completion script and bind them

On Linux ever-cli can be installed with a completion script by using such commands:

cd ever-cli
cargo install --force --path .
complete -C _ever-clicompletion ever-cli

After adding completion script, user can use <Tab> key to complete --addr option with aliases saved in the config file and -m/--method option with methods loaded from the ABI file.

Windows debug build troubleshooting

Default debug executable built after cargo build command may have an issue with binary default stack size:

> cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.66s
> .\target\debug\ever-cli.exe --version

thread 'main' has overflowed its stack

User can fix this issue by using editbin tool from MSVC Tools. This tool allows user to increase binary stack reserve. Increase it by 2 times will help to fix ever-cli:

> editbin /STACK:2097152 ever-cli.exe
Microsoft (R) COFF/PE Editor Version 14.28.29914.0
Copyright (C) Microsoft Corporation.  All rights reserved.

> ever-cli.exe --version ever_cli 0.26.7 COMMIT_ID: 1e1397b5561ea79d2fd7cce47cd033450b123f25 BUILD_DATE: Unknown COMMIT_DATE: 2022-05-13 14:15:47 +0300 GIT_BRANCH: master

Ubuntu 22 troubleshooting

Ubuntu 22 has upgraded to OpenSSL 3.0 and this breaks execution of compiled ever-cli releases. To fix this problem one should install old version of libssl. To do it one can download amd64 package from (packages.debian.org)[https://packages.debian.org/stretch/libssl1.1] and install it with dpkg:

sudo dpkg -i libssl1.1*.deb

Check version

You can check version of the current EVER-CLI installation with the following command:

ever-cli version

Output example:

$ ever-cli version
Config: default
ever-cli 0.2.0
COMMIT_ID: 21ebd53c35bf22696bf1eb434e408ed33318136a
BUILD_DATE: 2021-01-26 15:06:18 +0300
COMMIT_DATE: 2021-01-14 16:13:32 +0300
GIT_BRANCH: master

A note on Windows syntax

When using Windows command line, the following syntax should be used for all EVER-CLI commands:

1) Never use the ./ symbols before ever-cli:

> ever-cli <command_name> <options>

2) For all commands with nested quotes, the outer single quotes should be changed to double quotes, and the inner double quotes should be shielded by a preceding \. Example:

> ever-cli deploy SafeMultisigWallet.tvc "{\"owners\":[\"0x723b2f0fa217cd10fe21326634e66106678f15d5a584babe4f576dffe9dcbb1b\",\"0x127e3ca223ad429ddaa053a39fecd21131df173bb459a4438592493245b695a3\",\"0xc2dd3682ffa9df97a968bef90b63da90fc92b22163f558b63cb7e52bfcd51bbb\"],\"reqConfirms\":2}" --abi SafeMultisigWallet.abi.json --sign deploy.keys.json

If this is not done, arguments are not in json format: key must be a string at line 1 column error may occur.

2. Configuration

2.1. Set the network and parameter values

EVER-CLI can store some parameter values in the ever-cli configuration file and use it automatically in various subcommands.

After that you can omit the corresponding parameters in subsequent subcommands.

Default path for the configuration file is ./ever-cli.config.json. It is created in the current working directory. User can set up path to the configuration file manually. All subsequent calls of the utility will use this file by default.

Use the following command to create a configuration file:

ever-cli config [--global] <--option> <option_value>

All other EVER-CLI commands will indicate the configuration file currently used.

Default values for options that were not specified are taken from the global configuration file. It has name .ever-cli.global.conf.json and is located in the folder, where the ever-cli executable lies. This global configuration file can be configured as the ordinary one, but the option --global must be used for the config subcommand.

List of available options:

--abi <ABI>                                   Path or link to the contract ABI file or pure json ABI data.
--accesskey <ACCESSKEY>                     Project secret or JWT in Evercloud (dashboard.evercloud.dev).
--addr <ADDR>                                 Contract address.
--asynccall <ASYNCCALL>                     Disables wait for transaction to appear in the network after call command.
--balanceintons <BALANCEINTONS>           Print balance for account command in tons. If false balance is printed in nanotons.
--debugfail <DEBUGFAIL>                     When enabled ever-cli executes debug command on fail of run or call command. Can be enabled with values 'full' or 'minimal' which set the trace level for debug run and disabled with value 'none'.
--depoolfee <DEPOOLFEE>                     Value added to the message sent to depool to cover its fees (change will be returned).
--isjson <ISJSON>                           Cli prints output in json format.
--keys <KEYS>                                 Path to the file with keypair.
--lifetime <LIFETIME>                         Period of time in seconds while message is valid. Change of this parameter may affect "outofsync" parameter, because "lifetime" should be at least 2 times greater than "outofsync".
--localrun <LOCALRUN>                       Enable preliminary local run before deploy and call commands.
--method <METHOD>                             Method name that can be saved to be used by some commands (runx, callx).
--messageprocessingtimeout <MSG_TIMEOUT>    Network message processing timeout in ms.
--no-answer <NO_ANSWER>                       Flag whether to wait for depool answer when calling a depool function.
--outofsync <OUTOFSYNC>                   Network connection "outofsync_threshold" parameter in seconds. Mind that it cant exceed half of the "lifetime" parameter.
--parameters <PARAMETERS>                     Function parameters that can be saved to be used by some commands (runx, callx).
--projectid <PROJECTID>                     Project Id in Evercloud (dashboard.evercloud.dev).
--pubkey <PUBKEY>                             User public key. Used by DeBot Browser.
--retries <RETRIES>                           Number of attempts to call smart contract function if previous attempt was unsuccessful.
--timeout <TIMEOUT>                           Network wait_for timeout in ms. This value is also used as timeout for remote files (specified with link, e.g. ABI file) loading.
--url <URL>                                   Url to connect.
--wallet <WALLET>                             Multisig wallet address.
--wc <WC>                                     Workchain id.

Example:

$ ever-cli config --url https://main.evercloud.dev --wc -1 --keys key.json --abi SafeMultisigWallet.abi.json --lifetime 3600 --local_run true --retries 3 --timeout 600
Succeeded.
{
  "url": "main.evercloud.dev",
  "wc": -1,
  "addr": null,
  "method": null,
  "parameters": null,
  "wallet": null,
  "pubkey": null,
  "abi_path": "SafeMultisigWallet.abi.json",
  "keys_path": "key.json",
  "retries": 3,
  "timeout": 600,
  "messageprocessingtimeout": 40000,
  "outofsync_threshold": 15,
  "is_json": false,
  "depool_fee": 0.5,
  "lifetime": 3600,
  "no_answer": true,
  "balanceintons": false,
  "local_run": true,
  "async_call": false,
  "debug_fail": "None",
  "project_id": null,
  "access_key": null,
  "endpoints": [
    "https://mainnet.evercloud.dev"
  ]
}

Some frequently used networks:

http://127.0.0.1/ - Node SE local node.

https://devnet.evercloud.dev - developer sandbox for testing. EVER-CLI connects to it by default.

https://mainnet.evercloud.dev - main Free TON network.

EVER-CLI supports the use of multiple endpoints for networks: if several endpoints are specified in the endpoint map for a network, EVER-CLI will use them all when accessing it. Otherwise, the network URL will be treated as the only endpoint.

https://mainnet.evercloud.dev and https://devnet.evercloud.dev networks already have their current endpoints specified in the default endpoint map. See section 2.4 below on how to edit and add endpoints to the endpoint map.

Note: This change was introduced in version 0.16.1 and is fully compatible with scripts written for previous versions, where https://mainnet.evercloud.dev and https://devnet.evercloud.dev networks were specified with a single url. EVER-CLI will simply use the default endpoint map to access these networks.

Network configuration can be overridden for any single subcommand.

To connect to a DApp Server you are running, it should have domain name and a DNS record. Then its URL may be used to access it with EVER-CLI:

ever-cli config --url <dappserverurl>
Note: Either run ever-cli utility only from the directory where ever-cli.config.json is placed, or use one of the available methods (see section 2.5) to make the utility look for the file elsewhere.

2.1.1. Troubleshooting network connectivity problems

Most part of the network connectivity problems can be fixed by using right network endpoints and authentication credentials. ever-cli reads network endpoints settings from the configuration file, so ensure that you have set them properly. Here you can get the list of current network endpoints. ever-cli usually has the latest list of endpoints, but old endpoints can be saved in the configuration or global configuration files, so it's better to clear the config files after upgrading the ever-cli:

$ ever-cli config --global clear
$ ever-cli config --global endpoint reset
$ ever-cli config clear
$ ever-cli config endpoint reset

If your network connection can't be established with such error description:

$ ever-cli account -1:3333333333333333333333333333333333333333333333333333333333333333
Input arguments:
addresses: -1:3333333333333333333333333333333333333333333333333333333333333333
Connecting to:
        Url: main.evercloud.dev
        Endpoints: ["https://mainnet.evercloud.dev"]

Processing... Error: failed to query account info: Query failed: Can not send http request: Server responded with code 401 Error: 1

it can be caused by absence of authentication credentials. Set them up as described in this section.

2.2. Check configuration

You can print the current or the global configuration parameters with the following command:

ever-cli config --list
ever-cli config --global --list

2.3. Clear configuration

Use the following command to reset configuration to default values:

ever-cli config clear

The same options as in ordinary congfig command can be used to clear only the specified parametes.

$ ever-cli config clear --url --addr --wallet
Succeeded.
{
  "url": "net.evercloud.dev",
  "wc": 0,
  "addr": null,
  "method": null,
  "parameters": null,
  "wallet": null,
  "pubkey": null,
  "abi_path": null,
  "keys_path": null,
  "retries": 5,
  "timeout": 40000,
  "messageprocessingtimeout": 40000,
  "outofsync_threshold": 15,
  "is_json": false,
  "depool_fee": 0.5,
  "lifetime": 60,
  "no_answer": true,
  "balanceintons": false,
  "local_run": false,
  "async_call": false,
  "debug_fail": "None",
  "project_id": null,
  "access_key": null,
  "endpoints": [
    "https://devnet.evercloud.dev"
  ]
}

2.4. Configure endpoints map

EVER-CLI configuration file also stores the endpoints map that can be updated by the user. Each time user changes the url, endpoints also change in accordance to the endpoints map. To print the map use the following command:

ever-cli config endpoint print

User can reset map to the default state:

ever-cli config endpoint reset

Default state of the map:

{
  "http://127.0.0.1/": [
    "http://0.0.0.0",
    "http://127.0.0.1",
    "http://localhost"
  ],
  "main.evercloud.dev": [
    "https://mainnet.evercloud.dev"
  ],
  "net.evercloud.dev": [
    "https://devnet.evercloud.dev"
  ]
}

Map can be changed with remove and add subcommands:

ever-cli config endpoint remove <url>
ever-cli config endpoint add <url> <listofendpoints>

Example:

ever-cli config endpoint remove main.evercloud.dev
ever-cli config endpoint add main.evercloud.dev "https://mainnet.evercloud.dev"
Note: If url used in the add command already exists, endpoints lists will be merged.

If a network that doesn't have mapped endpoints is specified in the config file, its url will be automatically treated as the only endpoint. For example, configuring EVER-CLI to connect to RustNet with the command ever-cli config --url https://rustnet.ton.dev will result in EVER-CLI using this url as a single endpoint, without the user having to specify it in the endpoints map additionally.

2.5. Override configuration file location

You can move the ever-cli.config.json configuration file to any other convenient location and/or rename it. There are several ways you can point the utility to the new location of the file:

  • define environment variable EVERCLICONFIG with the path to your configuration file:
export EVERCLICONFIG=<pathtoconfig_file>

Example:

export EVERCLICONFIG=/home/user/config.json
  • define direct option --config <pathtoconfig_file> before any other subcommand:
ever-cli --config <pathtoconfigfile> <anysubcommand>

Example:

ever-cli --config /home/user/config.json account <address>

The --config direct option has higher priority than the EVERCLICONFIG environment variable.

Note: You can use the config subcommand to create or edit a configuration file located outside the current working directory.

2.6. Override network settings

You can also separately override preconfigured network settings for a single subcommand. Use the --url <network_url> direct option for this purpose:

ever-cli --url <networkurl> <anysubcommand>

Example:

ever-cli --url main.evercloud.dev account <address>

2.7. Force json output

You can force EVER-CLi to print output in json format. To do so, add --json flag before a subcommand:

ever-cli --json <any_subcommand>

This option can also be saved in the ever-cli configuration file:

ever-cli config --is_json true
{
  "url": "http://127.0.0.1/",
  "wc": 0,
  "addr": "0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13",
  "method": null,
  "parameters": null,
  "wallet": "0:0000000000000000000000000000000000000000000000000000000000000001",
  "pubkey": "0x0000000000000000000000000000000000000000000000000000000000000002",
  "abi_path": null,
  "keys_path": null,
  "retries": 5,
  "timeout": 40000,
  "messageprocessingtimeout": 40000,
  "outofsync_threshold": 15,
  "is_json": true,
  "depool_fee": 0.5,
  "lifetime": 60,
  "no_answer": true,
  "balanceintons": false,
  "local_run": false,
  "async_call": false,
  "debug_fail": "None",
  "endpoints": [
    "http://0.0.0.0/",
    "http://127.0.0.1/",
    "http://localhost/"
  ]
}

2.8. Debug on fail option

You can force EVER-CLi to debug call and run executions if they fail with error code 414.

ever-cli config --debugfail <tracelevel>

Possible values:

  • 'full'
  • 'minimal'
  • 'none'

2.9. Configure aliases map

Yoo can explore and configure current aliases map with the list of commands

ever-cli config alias add [--addr <contractaddress>] [--abi <contractabi>] [--keys <contract_keys>] <alias>  # add entity to the map
ever-cli config alias remove <alias>  # remove entity
ever-cli config alias reset  # clear the map
ever-cli config alias print  # print the current state of the map

Options:

  • <alias> - alias name of the contract;
  • <contract_address> - address of the contract;
  • <contract_abi> - path to the contract abi file;
  • <contract_keys> - seed phrase or path to the file with contract key pair.
Example:

$ ever-cli config alias add msig --addr 0:d5f5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fcd --abi samples/SafeMultisigWallet.abi.json --keys key0.keys.json
Config: /home/user/ever-cli/ever-cli.conf.json
{
  "msig": {
    "abi_path": "samples/SafeMultisigWallet.abi.json",
    "address": "0:d5f5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fcd",
    "key_path": "key0.keys.json"
  }
}
$ ever-cli config alias print
Config: /home/user/ever-cli/ever-cli.conf.json
{
  "msig": {
    "abi_path": "samples/SafeMultisigWallet.abi.json",
    "address": "0:d5f5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fcd",
    "key_path": "key0.keys.json"
  }
}
$ ever-cli config alias add msig2 --addr 0:eef5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fff --abi samples/SafeMultisigWallet.abi.json --keys key1.keys.json
Config: /home/user/ever-cli/ever-cli.conf.json
{
  "msig": {
    "abi_path": "samples/SafeMultisigWallet.abi.json",
    "address": "0:d5f5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fcd",
    "key_path": "key0.keys.json"
  },
  "msig2": {
    "abi_path": "samples/SafeMultisigWallet.abi.json",
    "address": "0:eef5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fff",
    "key_path": "key1.keys.json"
  }
}
$ ever-cli config alias remove msig
Config: /home/user/ever-cli/ever-cli.conf.json
{
  "msig2": {
    "abi_path": "samples/SafeMultisigWallet.abi.json",
    "address": "0:eef5cfc4b52d2eb1bd9d3a8e51707872c7ce0c174facddd0e06ae5ffd17d2fff",
    "key_path": "key1.keys.json"
  }
}
$ ever-cli config alias reset
Config: /home/user/ever-cli/ever-cli.conf.json
{}
$ ever-cli config alias print
Config: /home/user/ever-cli/ever-cli.conf.json
{}

2.10. Enabling verbose mode for SDK execution

User can increase log level of the tool execution to see more messages. To do it one need to specify environment variable RUST_LOG=debug:

$ ever-cli callx --addr 0:75186644bf5157d1b638390889ec2ba297a12250f6e90d935618918cb82d12c3 --abi ../samples/1_Accumulator.abi.json --keys keys/key0 -m add --value 1
Input arguments:
 address: 0:75186644bf5157d1b638390889ec2ba297a12250f6e90d935618918cb82d12c3
  method: add
  params: {"value":"1"}
     abi: ../samples/1_Accumulator.abi.json
    keys: keys/key0
Connecting to:
        Url: net.evercloud.dev
        Endpoints: ["https://devnet.evercloud.dev/b2ad82504ee54fccb5bc6db8cbb3df1e"]

MessageId: b3e24321924526dbfdc8ffdd9cc94aeb2da80edca7d87bd7f16f4a0a2afbfa20 Succeeded. Result: {}

Enable verbose mode

$ export RUST_LOG=debug

$ ever-cli callx --addr 0:75186644bf5157d1b638390889ec2ba297a12250f6e90d935618918cb82d12c3 --abi ../samples/1_Accumulator.abi.json --keys keys/key0 -m add --value 1 Input arguments: address: 0:75186644bf5157d1b638390889ec2ba297a12250f6e90d935618918cb82d12c3 method: add params: {"value":"1"} abi: ../samples/1_Accumulator.abi.json keys: keys/key0 Connecting to: Url: net.evercloud.dev Endpoints: ["https://devnet.evercloud.dev/b2ad82504ee54fccb5bc6db8cbb3df1e"]

starting new connection: https://devnet.evercloud.dev/ Last block "76657141a65727996dadf9b929d40887cc3c78df09a97b9daecabd8b3e01327a" MessageId: 64c98e8fbf5aa9ccf9d6526c6275bc617f6eb6f747b616f82e85cda7403c165b messageexpirationtime 1664983987 fetchblocktimeout 88688 1664983931: block received { "id": "b3ab65d5b8503dedfa1250d72b7d8247e802551dfedabb80b82454abb6e755ce", "gen_utime": 1664983924, "after_split": false, "workchain_id": 0, "shard": "7800000000000000", "inmsgdescr": [] } fetchblocktimeout 85461 1664983933: block received { "id": "8dc7cc2c4ab9be6b4ac0e9d3bcd6aac3179825683f4c8df02f76e9929a649ffc", "gen_utime": 1664983926, "after_split": false, "workchain_id": 0, "shard": "7800000000000000", "inmsgdescr": [] } fetchblocktimeout 83209 1664983936: block received { "id": "b6977305cf28b86a0547a7fd34c03ad0534a94fb5453c3639e5f28e18a0c5d6b", "gen_utime": 1664983929, "after_split": false, "workchain_id": 0, "shard": "7800000000000000", "inmsgdescr": [ { "msg_id": "64c98e8fbf5aa9ccf9d6526c6275bc617f6eb6f747b616f82e85cda7403c165b", "transaction_id": "796ebf67fab053ea88bdf9a971d088fc6dbcb47b106f420c740815246f28c8b7" } ] } Succeeded. Result: {}

3. Cryptographic commands

3.1. Create seed phrase

To generate a mnemonic seed phrase enter the following command:

ever-cli genphrase [--dump <path>]

Options:

--dump <path> - Path where to dump keypair generated from the phrase.

Example:

$ ever-cli genphrase
Config: /home/user/ever-cli.conf.json
Succeeded.
Seed phrase: "rule script joy unveil chaos replace fox recipe hedgehog heavy surge online"

$ ever-cli genphrase --dump /tmp/1.key Succeeded. Seed phrase: "resist immune key jar lunar snake real vintage chicken radar famous cinnamon" Keypair successfully saved to /tmp/1.key. Succeeded. Keypair saved to /tmp/1.key

3.2. Generate public key

To generate a public key from a seed phrase enter the following command with the seed phrase in quotes:

ever-cli genpubkey "rule script joy unveil chaos replace fox recipe hedgehog heavy surge online"

The generated QR code also contains the public key.

Example:

$ ever-cli genpubkey "rule script joy unveil chaos replace fox recipe hedgehog heavy surge online"
Config: /home/user/ever-cli.conf.json
Succeeded.
Public key: 88c541e9a1c173069c89bcbcc21fa2a073158c1bd21ca56b3eb264bba12d9340

<QR code with key>

3.3. Generate key pair file

To create a key pair file from a seed phrase use the following command:

ever-cli getkeypair [-o <keyfile.json>] [-p "<seed_phrase>"]

<keyfile.json> - the file the key pair will be written to. If not specified keys will be printed to the stdout. "<seed_phrase>" - seed phrase or secret key. If not specified a new phrase will be generated. Example:

$ ever-cli getkeypair -o key.json -p "rule script joy unveil chaos replace fox recipe hedgehog heavy surge online"
Config: /home/user/ever-cli/ever-cli.conf.json
Input arguments:
key_file: key.json
  phrase: rule script joy unveil chaos replace fox recipe hedgehog heavy surge online
Keypair successfully saved to key.json.
Succeeded.

$ ever-cli getkeypair -o key.json Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: key_file: key.json phrase: None Generating seed phrase. Seed phrase: "elephant tone error jazz scrap wise kick walk panda snake right feature" Keypair successfully saved to key.json. Succeeded.

$ ever-cli getkeypair Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: key_file: None phrase: None Generating seed phrase. Seed phrase: "behave early mammal cart grape wolf pulse once helmet shop kit this" Keypair: { "public": "d5218be1502c98019a2c08ae588f73abd56b4c72411e8d2ee37e5c2d821e075f", "secret": "842bd2b9df2ec4ed07b6b66d6d0c2858769ba4ed9005ffe58cba26783504a3ff" } Succeeded.

$ ever-cli -j getkeypair { "public": "09889cd2f085a693ef04a6dad4b6533c7019014a7e0ca9b5b146e66e550973d9", "secret": "021196259435d54dfb5c41970db5bcfc2306d59877665c3b573486d441cf021a" }

4. Smart contract commands

When working with smart contracts, EVER-CLI requires the following files:

  • ABI file - a .json file that describes the contract interface, the methods and parameters used to interact with it.
  • TVC file - the compiled smart contract file. Used only when generating contract address and deploying contract code to the blockchain.
  • Key pair file - used in contracts with implemented authorization. It is the file containing private and public keys authorized to access the contract. In --sign parameter the corresponding seed phrase may be used instead of it.
By default, the utility looks for these files in the current working directory.

4.1. Generate contract address

Contract address uniquely identifies the contract on the blockchain. Contract balance is attached to its address, the address is used for any interactions with the contract, such as calling contract functions, sending messages, etc.

Contract address is generated based on contract TVC file and selected keys. To get a different address for the same type of contract, use different keys.

Note: For contracts with ABI 2.4, you should use the flag --save to insert the deployment public key into the TCV file.
Note: If your contract has static variables, they can be initialized through TVM linker before deployment.

Use the following command to generate the contract address:

ever-cli genaddr [--genkey|--setkey <keyfile.json>] [--wc <int8>] [--abi <contract.abi.json>] [--save] [--data <data>] <contract.tvc>

Options:

--genkey <keyfile.json> - generate new keyfile.json key pair file and use it to calculate the contract address.

Note: if you use --genkey, the corresponding seed phrase will be displayed. Write it down, if you mean to keep using this key pair.

--abi <contract.abi.json> - contract ABI interface file. If not specified ever-cli can use ABI path from config of obtained from tvc path (for <contrac>.tvc checks <contract>.abi.json).

--setkey <keyfile.json> - use already existing keyfile.json key pair file to calculate the contract address. Seed phrase cannot be used instead of the file.

--wc <int8> - ID of the workchain the contract will be deployed to (-1 for masterchain, 0 for basechain). By default, this value is set to 0.

--save - If this flag is specified, modifies the tvc file with the keypair and initial data.

--data <data> - Initial data to insert into the contract. Should be specified in json format.

<contract.tvc> - compiled smart contract file.

As a result ever-cli displays the new contract address (Raw address).

Example (multisignature wallet address generation for the masterchain):

$ ever-cli genaddr --genkey key.json --wc -1 SafeMultisigWallet.tvc --abi SafeMultisigWallet.abi.json
Config: /home/user/ever-cli.conf.json
Input arguments:
     tvc: SafeMultisigWallet.tvc
      wc: -1
    keys: key.json
init_data: None
isupdatetvc: None

Seed phrase: "chimney nice diet engage hen sing vocal upgrade column address consider word" Raw address: -1:a021414a79539001ed35d615a646dc8b89df29ccccf143c30df15c7fbcaff086 testnet: Non-bounceable address (for init): 0f-gIUFKeVOQAe011hWmRtyLid8pzMzxQ8MN8VxvKwhkeM Bounceable address (for later access): kf-gIUFKeVOQAe011hWmRtyLid8pzMzxQ8MN8VxvKwhhpJ mainnet: Non-bounceable address (for init): Uf-gIUFKeVOQAe011hWmRtyLid8pzMzxQ8MN8VxvKwhvwG Bounceable address (for later access): Ef-gIUFKeVOQAe011hWmRtyLid8pzMzxQ8MN8VxvKwhqHD Succeeded

4.2. Deploy contract

Note: For contracts using ABI 2.4, it is necessary to first insert the deployment public key into the TCV file. This can be achieved using the genaddr function.
Note: If your contract has static variables, they can be initialized with genaddr command before deployment.

Use the following command to deploy a contract:

ever-cli deploy [--sign <deployseedor_keyfile>] [--wc <int8>] [--abi <contract.abi.json>] [--alias <alias>] <contract.tvc> <params>

<deployseedor_keyfile> - can either be the seed phrase used to generate the deployment key pair file or the key pair file itself. If seed phrase is used, enclose it in double quotes.

Example: --sign "flip uncover dish sense hazard smile gun mom vehicle chapter order enact" or --sign deploy.keys.json

--wc <int8> ID of the workchain the wallet will be deployed to (-1 for masterchain, 0 for basechain). By default, this value is set to 0.

--abi <contract.abi.json> - Path or link to the contract ABI file or pure json ABI data. Can be specified in the config file.

--alias <alias> - allows to save contract parameters (address, abi, keys) to use them easier with callx or runx commands.

<contract.tvc> - compiled smart contract file.

<params> - deploy command parameters, depend on the contract.

Sometimes it can be not obvious in which way method parameters should be specified, especially if it is a large structure with different and complex fields. It is generally described in abi doc. Example (multisignature wallet contract deployment to the masterchain):

$ ever-cli deploy --sign key.json --wc -1 --abi SafeMultisigWallet.abi.json SafeMultisigWallet.tvc '{"owners":["0x88c541e9a1c173069c89bcbcc21fa2a073158c1bd21ca56b3eb264bba12d9340"],"reqConfirms":1}'
Config: /home/user/ever-cli.conf.json
Input arguments:
     tvc: SafeMultisigWallet.tvc
  params: {"owners":["0x88c541e9a1c173069c89bcbcc21fa2a073158c1bd21ca56b3eb264bba12d9340"],"reqConfirms":1}
     abi: SafeMultisigWallet.abi.json
    keys: key.json
      wc: -1
Connecting to net.evercloud.dev
Deploying...
Transaction succeeded.
Contract deployed at address: -1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6

4.3. Generate deploy message offline

If needed, signed deploy message can be generated without immediately broadcasting it to the blockchain. Generated message can be sent later.

ever-cli deploymessage [--raw] [--output <pathtofile>] [--signatureid <value>] [--sign <deployseedor_keyfile>] [--wc <int8>] [--abi <contract.abi.json>] <contract.tvc> <params>

--raw - use to create raw message boc.

--output <pathtofile> - specify path to file where the raw message should be written to, instead of printing it to terminal.

--signatureid <value> - use this option to designate a specific signatureid for signing your message. For an automated online retrieval of the signature_id, set the value to online, which will fetch it from the network configuration. Alternatively, input a specific numerical value to facilitate offline message signing.

<deployseedor_keyfile> - can either be the seed phrase used to generate the deployment key pair file or the key pair file itself. If seed phrase is used, enclose it in double quotes.

Example:

--sign "flip uncover dish sense hazard smile gun mom vehicle chapter order enact"

or

--sign deploy.keys.json

--wc <int8> ID of the workchain the wallet will be deployed to (-1 for masterchain, 0 for basechain). By default, this value is set to 0.

<contract.abi.json> - contract interface file.

<contract.tvc> - compiled smart contract file.

<params> - deploy command parameters, depend on the contract.

Example (saving to a file multisignature wallet contract deployment message to the masterchain):

$ ever-cli deploy_message --raw --output deploy.boc --sign key.json --wc -1 --abi SafeMultisigWallet.abi.json SafeMultisigWallet.tvc '{"owners":["0x88c541e9a1c173069c89bcbcc21fa2a073158c1bd21ca56b3eb264bba12d9340"],"reqConfirms":1}'
Config: /home/user/ever-cli.conf.json
Input arguments:
     tvc: SafeMultisigWallet.tvc
  params: {"owners":["0x88c541e9a1c173069c89bcbcc21fa2a073158c1bd21ca56b3eb264bba12d9340"],"reqConfirms":1}
     abi: SafeMultisigWallet.abi.json
    keys: key.json
      wc: -1

MessageId: 51da1b8840bd12f9ef5152639bd1fe9062d77ed91829301043bb85b4a4d610ea Expire at: unknown Message saved to file deploy.boc Contract's address: -1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6 Succeeded.

4.3. Get contract status

You may use the following command to check the current status of a contract:

ever-cli account [--boc] <listofaddresses> [--dumptvc <tvcpath>] [--dumpboc <bocpath>]

<listofaddresses> - contract addresses, if not specified address is taken from the config file. --dumptvc <tvcpath> - this flag can be specified to dump account StateInit to the path> file. --dumpboc <bocpath> - this flag can be specified to dump account boc to the path> file. --boc - flag that changes behaviour of the command to work with the saved account state from the BOC file. In this case path to the boc file should be specified instead of address.

Example:

$ ever-cli  account 0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13 0:14014af4a374bdd13dae2379063ea2597634c2c2fc8e99ca9eab431a7ab6f566  0:f89d946b5b4b8a06f01dc20dceef30caff844d5285abea8a21ad3730c0f3dd12
Config: /home/user/ever-cli/ever-cli.conf.json
Input arguments:
addresses: 0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13, 0:14014af4a374bdd13dae2379063ea2597634c2c2fc8e99ca9eab431a7ab6f566, 0:f89d946b5b4b8a06f01dc20dceef30caff844d5285abea8a21ad3730c0f3dd12
Connecting to net.evercloud.dev
Processing...
Succeeded.
address:       0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13
acc_type:      Active
balance:       11466383488239689 nanoton
last_paid:     1640619135
lasttranslt: 0x530197a143
data_boc:      b5ee9c720101060100b000014195c06aa743d1f9000dd64b75498f106af4b7e7444234d7de67ea26988f6181dfe001020120050202012004030052bf874da2f56d034e11773c58331900e0e1e91a137e1b4c2ca15607634c2d63e1af0000000061c9dca50052bfbddf9156dc04cca88cf25d9c766b1bd2f1ab7d0878c4d761862fc524758767f10000000061c9dc820053bfd627d55f960de2235b3f1537884d5968e5e486c58c581bc9ea4068c8da164ce18000000030e4ee49c0
code_hash:     ccbfc821853aa641af3813ebd477e26818b51e4ca23e5f6d34509215aa7123d9

address: 0:14014af4a374bdd13dae2379063ea2597634c2c2fc8e99ca9eab431a7ab6f566 acc_type: Active balance: 2082745497066 nanoton last_paid: 1640619517 lasttranslt: 0x530a3c2782 data_boc: b5ee9c7201020c0100022e000373000000befe45557e0000000000000000000000000002faf04e577e5cf5b28c2a81afc5ae534a0f3f494cc4ee62ef675ca8e36af911a3c8767a400b0a010183801f13b28d6b697140de03b841b9dde6195ff089aa50b57d514435a6e6181e7baba318b50f6f18c9d307d500216c80d6ecd77d13e437bdfcaf0b4fa6b9204b7847500203a1c00b620939e214cadb7481682034e58a853a77874f473c69cc7d3b1ad9da7f0bafa0000000280000000c0000000bddcfa66622a7b9c955271c779b92448cff442b8efead77d43bd7f50b07a45f380030010706030203cca005040045b41bda168cd2322b5dcd28989176a9eae590288db4d548f2b6948d214de0c9bdb372700045b6554f714ca768f21ad18cff20c7af62091e9fc2d40c06d32d1ace7495f5dd1605781000bda90017d76e405363a8a494a3a8d8c38fcadd4f2c7fb550244fd6d2a77ac12eb029bce000000000000255400000000000000000000000000000034c3babc06000000000000000000000000000000000000000000000000000000000000000100201200908009bbfe85a3348c8ad7734a26245daa7ab9640a236d35523cada523485378326f6cdc9800000000000106f0000000000000000000000000002035ac0000000000000000000000000000000187c4b00e0007bbffdc5329da3c86b4633fc831ebd88247a7f0b50301b4cb46b39d257d7745815e0000000000000095500000000000000000000000002f8eb24987c490760000454310010546f6b656e202331 code_hash: eee7d3331153dce4aa938e3bcdc922467fa215c77f56bbea1debfa8583d22f9c

0:f89d946b5b4b8a06f01dc20dceef30caff844d5285abea8a21ad3730c0f3dd12 not found

$ ever-cli account 0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13 Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: addresses: 0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13 Connecting to net.evercloud.dev Processing... Succeeded. address: 0:2bb4a0e8391e7ea8877f4825064924bd41ce110fce97e939d3323999e1efbb13 acc_type: Active balance: 11463682795615708 nanoton last_paid: 1640624439 lasttranslt: 0x5379939282 data_boc: b5ee9c7201010401008100014195c06aa743d1f9000dd64b75498f106af4b7e7444234d7de67ea26988f6181dfe00102012003020053bfde8d98393e5db0ea2f609ed9266cf61a7487759d679ea9792adbdcfc137f6caf8000000030e4f89dc00053bfc8658b6b027767d9addd720a0bf8b157379a9b0e9208bab53ad4ee54358c6ce98000000030e4f89dc0 code_hash: ccbfc821853aa641af3813ebd477e26818b51e4ca23e5f6d34509215aa7123d9

4.4. Call method

4.4.1. Call contract on the blockchain

ever-cli call [--abi <contract.abi.json>] [--sign <seedorkeyfile>] [--savedconfig <configcontract_path>] <address> <method> <params>

<contract.abi.json> - contract interface file.

<configcontractpath> - path to the file with saved config contract state. Is used for debug on fail.

<seedorkeyfile> - can either be the seed phrase or the corresponding key pair file. If seed phrase is used, enclose it in double quotes.

Example:

  • --sign "flip uncover dish sense hazard smile gun mom vehicle chapter order enact"
or
  • --sign keyfile.json
<address> - contract address.

<method> - the method being called.

<params> - parameters of the called method. Can be specified by a path to the file, which contains parameters in json format. Sometimes it can be not obvious in which way method parameters should be specified, especially if it is a large structure with different and complex fields. It is generally described in abi doc.

Example (transaction creation in a multisignature wallet contract):

$ ever-cli call 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc submitTransaction '{"dest":"-1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6","value":234000000,"bounce":false,"allBalance":false,"payload":""}' --abi SetcodeMultisigWallet.abi.json --sign k1.keys.json
Config: /home/user/ever-cli.conf.json
Input arguments:
 address: 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc
  method: submitTransaction
  params: {"dest":"-1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6","value":234000000,"bounce":false,"allBalance":false,"payload":""}
     abi: SetcodeMultisigWallet.abi.json
    keys: k1.keys.json
lifetime: None
  output: None
Connecting to net.evercloud.dev
Generating external inbound message...

MessageId: c6baac843fefe6b9e8dc3609487a63ef21207e4fdde9ec253b9a47f7f5a88d01 Expire at: Sat, 08 May 2021 14:52:23 +0300 Processing... Succeeded. Result: { "transId": "6959885776551137793" }

Note: If your function is marked as responsible, EVER-CLI expects answer_id field, and you may encounter errors, if it's missing.

4.4.2. Run contract method locally

ever-cli run [--abi <contract.abi.json>] <address> <method> <params>

<contract.abi.json> - contract interface file.

<address> - contract address.

<method> - the method being called.

<params> - parameters of the called method. Sometimes it can be not obvious in which way method parameters should be specified, especially if it is a large structure with different and complex fields. It is generally described in abi doc.

Example of a transaction list request in a multisignature wallet:

$ ever-cli run 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc getTransactions {} --abi SafeMultisigWallet.abi.json
Config: /home/user/ever-cli.conf.json
Input arguments:
 address: 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc
  method: getTransactions
  params: {}
     abi: SafeMultisigWallet.abi.json
    keys: None
lifetime: None
  output: None
Connecting to net.evercloud.dev
Generating external inbound message...

MessageId: ff8b8a73b1a7803a735eb4f620cade78ed45fd1530992fd3bedb91f3c66eacc5 Expire at: Sat, 08 May 2021 15:16:59 +0300 Running get-method... Succeeded. Result: { "transactions": [ { "id": "6959890394123980993", "confirmationsMask": "1", "signsRequired": "4", "signsReceived": "1", "creator": "0x849ee401fde65ad8cda6d937bdc81e2beba0f36ba2f87115f4a2d24a15568203", "index": "0", "dest": "-1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6", "value": "234000000", "sendFlags": "3", "payload": "te6ccgEBAQEAAgAAAA==", "bounce": false } ] }

4.4.3. Run funC get-method

ever-cli runget [--boc] [--tvc] <address> <method> [<params>...] [--bcconfig <configpath>]

<address> - contract address or path to the file with:

  • account boc (It can be obtained from the TON Live) if --boc option is used;
  • account state init if flag --tvc is used.
<method> - the method being called.

<params> - parameters of the called method. Can have multiple values: one for each function parameter. Parameters should be specified separately without json wrap and argument names.

--bcconfig <configpath> - this option can be used with --boc option to specify the file with the blockchain config BOC. It can be obtained with dump blockchain config command.

Example:

$ ever-cli runget -1:3333333333333333333333333333333333333333333333333333333333333333 activeelectionid
Config: /home/user/ever-cli.conf.json
Input arguments:
 address: -1:3333333333333333333333333333333333333333333333333333333333333333
  method: activeelectionid
  params: None
Connecting to net.evercloud.dev
Running get-method...
Succeded.
Result: ["1619901678"]

$ ever-cli runget --boc acc.boc computereturnedstake 0x0166d0181a19f87af9397040a68671e1b239f12152824f7d987fd6897d6a9587 Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: address: acc.boc method: computereturnedstake params: ["0x0166d0181a19f87af9397040a68671e1b239f12152824f7d987fd6897d6a9587"] Connecting to main.evercloud.dev Running get-method... Succeeded. Result: ["125387107580525"]

$ ever-cli runget --tvc acc.tvc computereturnedstake 0x0166d0181a19f87af9397040a68671e1b239f12152824f7d987fd6897d6a9587 Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: address: acc.boc method: computereturnedstake params: ["0x0166d0181a19f87af9397040a68671e1b239f12152824f7d987fd6897d6a9587"] Connecting to main.evercloud.dev Running get-method... Succeeded. Result: ["125387107580525"]

4.4.4. Run contract method locally for saved account BOC

ever-cli run [--boc] [--tvc] [--abi <contract.abi.json>] <account> <method> <params> [--bcconfig <configpath>] [--savedconfig <configcontract_path>]

<contract.abi.json> - contract interface file.

<account> - path to the file with account boc for flag --boc or account state init for flag --tvc (they can be obtained from the network with account command).

<configcontractpath> - path to the file with saved config contract state. Is used for debug on fail.

<method> - the method being called.

<params> - parameters of the called method.

--bcconfig <configpath> - this option can be used with --boc option to specify the file with the blockchain config BOC. It can be obtained with dump blockchain config command.

Example:

$ ever-cli run --boc tests/depool_acc.boc getData '{}' --abi tests/samples/fakeDepool.abi.json
Config: /home/user/ever-cli/ever-cli.conf.json
Input arguments:
 account: tests/depool_acc.boc
  method: getData
  params: {}
     abi: tests/samples/fakeDepool.abi.json
Generating external inbound message...
Succeeded.
Result: {
  "stake": "65535",
  "sender": "0:1e0739795a20263747ba659785a791fc2761295593a694f53116ab53439cc0a4",
  "receiver": "0:0123456789012345012345678901234501234567890123450123456789012346",
  "withdrawal": "172800",
  "total": "172800",
  "reinvest": false,
  "value": "1000000000"
}

$ ever-cli run --tvc tests/depool_acc.tvc getData '{}' --abi tests/samples/fakeDepool.abi.json Config: /home/user/ever-cli/ever-cli.conf.json Input arguments: account: tests/depool_acc.boc method: getData params: {} abi: tests/samples/fakeDepool.abi.json Generating external inbound message... Succeeded. Result: { "stake": "65535", "sender": "0:1e0739795a20263747ba659785a791fc2761295593a694f53116ab53439cc0a4", "receiver": "0:0123456789012345012345678901234501234567890123450123456789012346", "withdrawal": "172800", "total": "172800", "reinvest": false, "value": "1000000000" }

4.5. Generate encrypted message offline

An internet connection is not required to create an encrypted message. Use the following command to do it:

ever-cli message [--raw] [--output <pathtofile>] [--signatureid <value>] [--abi <contract.abi.json>] [--sign <seedor_keyfile>] <address> <method> <params> [--lifetime <seconds>]

--raw - use to create raw message boc.

--output <pathtofile> - specify path to file where the raw message should be written to, instead of printing it to terminal.

--signatureid <value> - use this option to designate a specific signatureid for signing your message. For an automated online retrieval of the signature_id, set the value to online, which will fetch it from the network configuration. Alternatively, input a specific numerical value to facilitate offline message signing.

<contract.abi.json> - contract interface file.

<seedorkeyfile> - can either be the seed phrase or the corresponding key pair file. If seed phrase is used, enclose it in double quotes.

Example:

  • --sign "flip uncover dish sense hazard smile gun mom vehicle chapter order enact"
or
  • --sign keyfile.json
<address> - contract address.

<method> - the method being called.

<params> - parameters of the called method.

lifetime – message lifetime in seconds. Once this time elapses, the message will not be accepted by the contract.

The EVER-CLI utility displays encrypted message text and a QR code that also contains the message.Copy the message text or scan the QR code and broadcast the message online.

Example (raw boc of create new multisig transaction message with a lifetime of 1 hour saved to file):

$ ever-cli message --raw --output message.boc --sign k1.keys.json --abi SafeMultisigWallet.abi.json 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc submitTransaction '{"dest":"-1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6","value":234000000,"bounce":false,"allBalance":false,"payload":""}' --lifetime 3600
Config: /home/user/ever-cli.conf.json
Input arguments:
 address: 0:a4629d617df931d8ad86ed24f4cac3d321788ba082574144f5820f2894493fbc
  method: submitTransaction
  params: {"dest":"-1:0c5d5215317ec8eef1b84c43cbf08523c33f69677365de88fe3d96a0b31b59c6","value":234000000,"bounce":false,"allBalance":false,"payload":""}
     abi: SafeMultisigWallet.abi.json
    keys: k1.keys.json
lifetime: 3600
  output: message.boc
Generating external inbound message...

MessageId: 59d698efe871cf9ffa8f6eb4c784b294538cd2223b4c876bb4e999a8edf8d410 Expire at: Sat, 08 May 2021 16:42:03 +0300 Message saved to file message.boc

4.6. Broadcast previously generated message

Use the following command to send a previously generated message, that is not in raw format, and not in a file:

ever-cli send [--abi <contract.abi.json>] "<message_text>"

<contract.abi.json> - contract interface file.

<message_text> – the content of the message generated by the EVER-CLI utility during message creation. It should be enclosed in double quotes.

Example:

```bash $ ever-cli send --abi SafeMultisigWallet.abi.json "7b226d7367223a7b226d6573736167655f6964223a2266363364666332623030373065626264386365643265333865373832386630343837326465643036303735376665373430376534393037646266663338626261222c226d657373616765223a227465366363674542424145413051414252596742534d553677767679593746624464704a365a5748706b4c7846304545726f4b4a36775165555369536633674d41514868757856507a324c5376534e663344454a2f374866653165562f5a78324d644e6b4b727770323865397a7538376a4d6e7275374c48685965367642523141756c48784b44446e4e62344f47686768386e6b6b7a48386775456e7551422f655a61324d326d32546539794234723636447a61364c34635258306f744a4b465661434177414141586c4d464e7077594a61616b524d64677332414341574f663459757151715976325233654e776d49655834517048686e37537a75624c76524838657931425a6a617a6a414141414141414141414141414141414a4d61735142414d4141413d3d222c22657870697265223a313632303438323730352c2261646472657373223a22303a61343632396436313764663933316438616438366564323466346361633364333231373838626130383235373431343466353832306632383934343933666263227d2c226d6574686f64223a227375626d69745472616e73616374696f6e227d" Config: /home/user/ever-cli.conf.json Input arguments: message: 7b226d7367223a7b226d6573736167655f6964223a2266363364666332623030373065626264386365643265333865373832386630343837326465643036303735376665373430376534393037646266663338626261222c226d657373616765223a227465366363674542424145413051414252596742534d553677767679593746624464704a365a5748706b4c7846304545726f4b4a36775165555369536633674d41514868757856507a324c5376534e663344454a2f374866653165562f5a78324d644e6b4b727770323865397a7538376a4d6e7275374c48685965367642523141756c48784b44446e4e62344f47686768386e6b6b7a48386775456e7551422f655a61324d326d32546539794234723636447a61364c34635258306f744a4b465661434177414141586c4d464e7077594a61616b524d64677332414341574f6634597571517


README truncated. View on GitHub

© 2026 GitRepoTrend · everx-labs/ever-cli · Updated daily from GitHub