Skip to content

Contract Commands

Commands for interacting with EVM smart contracts. Requires the payment system to be enabled (payment.enabled = true).

lango contract <subcommand>

Experimental Feature

Contract interaction is experimental. Always verify contract addresses, method signatures, and ABI files before executing calls.


lango contract read

Call a view/pure contract method (read-only, no gas required). Validates the ABI and method locally; live RPC queries require a running lango serve instance. The command writes the validation payload through the Cobra command output stream and the runtime note through the Cobra error stream so wrappers and test harnesses can capture them separately.

lango contract read --address <addr> --abi <file> --method <name> [--args <csv>] [--chain-id <id>] [--output table|json]
Flag Type Default Description
--address string required Contract address (0x...)
--abi string required Path to ABI JSON file
--method string required Method name to call
--args string "" Comma-separated method arguments
--chain-id int from config Chain ID override
--output string table Output format (table or json)

Unknown --output values fail fast with an actionable error before config loading or ABI parsing begins.

Example:

$ lango contract read \
    --address 0x036CbD53842c5426634e7929541eC2318f3dCF7e \
    --abi ./erc20.json \
    --method balanceOf \
    --args 0x1234abcd5678ef901234abcdef567890abcdef12
Note: contract read requires a running RPC connection.
Use 'lango serve' and the contract_read agent tool for live queries.

Contract Read (validated)
  Address:  0x036CbD53842c5426634e7929541eC2318f3dCF7e
  Method:   balanceOf
  Args:     [0x1234abcd5678ef901234abcdef567890abcdef12]
  Chain ID: 84532

lango contract call

Execute a state-changing transaction on a smart contract. Validates the ABI and method locally; live transactions require a running lango serve instance and wallet. The command writes the validation payload through the Cobra command output stream and the runtime note through the Cobra error stream so wrappers and test harnesses can capture them separately.

lango contract call --address <addr> --abi <file> --method <name> [--args <csv>] [--value <eth>] [--chain-id <id>] [--output table|json]
Flag Type Default Description
--address string required Contract address (0x...)
--abi string required Path to ABI JSON file
--method string required Method name to call
--args string "" Comma-separated method arguments
--value string "" ETH value to send (e.g., "0.01")
--chain-id int from config Chain ID override
--output string table Output format (table or json)

Unknown --output values fail fast with an actionable error before config loading or ABI parsing begins.

Example:

$ lango contract call \
    --address 0x036CbD53842c5426634e7929541eC2318f3dCF7e \
    --abi ./erc20.json \
    --method transfer \
    --args 0x5678abcd1234ef567890abcdef1234567890abcd,1000000
Note: contract call requires a running RPC connection and wallet.
Use 'lango serve' and the contract_call agent tool for live transactions.

Contract Call (validated)
  Address:  0x036CbD53842c5426634e7929541eC2318f3dCF7e
  Method:   transfer
  Args:     [0x5678abcd1234ef567890abcdef1234567890abcd 1000000]
  Chain ID: 84532

State-Changing

Contract calls may modify blockchain state and spend gas or tokens. Always verify the method, arguments, and value before executing.


lango contract abi load

Parse and validate a contract ABI from a local JSON file. Caches the parsed ABI for subsequent read/call commands. The command writes text and JSON output through the Cobra command output stream so wrappers and test harnesses can capture it directly.

lango contract abi load --address <addr> --file <path> [--chain-id <id>] [--output table|json]
Flag Type Default Description
--address string required Contract address (0x...)
--file string required Path to ABI JSON file
--chain-id int from config Chain ID override
--output string table Output format (table or json)

Unknown --output values fail fast with an actionable error before config loading or ABI parsing begins.

Example:

$ lango contract abi load \
    --address 0x036CbD53842c5426634e7929541eC2318f3dCF7e \
    --file ./erc20.json
ABI Loaded
  Address:  0x036CbD53842c5426634e7929541eC2318f3dCF7e
  Chain ID: 84532
  Methods:  10
  Events:   3

$ lango contract abi load \
    --address 0x036CbD53842c5426634e7929541eC2318f3dCF7e \
    --file ./erc20.json \
    --output json
{
  "address": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
  "chainId": 84532,
  "events": 3,
  "methods": 10,
  "status": "loaded"
}