For the complete documentation index, see llms.txt. This page is also available as Markdown.

CLI Reference

The twak CLI provides full access to the Trust Wallet Agent SDK from the command line.

Run: npx @trustwallet/cli <command> or install globally with npm install -g @trustwallet/cli


init

Initialize configuration and save credentials.

twak init --api-key <key> --api-secret <secret>
Flag
Required
Description

--api-key

Yes

TWAK API access ID

--api-secret

Yes

HMAC secret

Credentials are saved to ~/.twak/credentials.json.


auth

auth setup

twak auth setup --api-key <key> --api-secret <secret>

auth status

twak auth status [--json]

wallet

wallet create

wallet address

Password falls back to the OS keychain or TWAK_WALLET_PASSWORD environment variable. See Key Management for full details on key storage, password resolution, and signing permissions.

wallet addresses

wallet balance

Use --all to show balances across all chains with funds. Use --no-tokens to skip token balance lookup.

wallet portfolio

Full portfolio across all chains — native balances, token holdings, and USD values.

Default chains include all major EVM chains plus Solana and TRON.

wallet sign-message

Sign an arbitrary message with the agent wallet key.

wallet keychain save

Save the wallet password to the OS keychain for passwordless usage.

wallet keychain delete

wallet keychain check

wallet status


transfer

Flag
Description

--to

Destination address or ENS name (e.g., vitalik.eth)

--amount

Amount in human-readable format

--token

Asset ID (e.g., c60 for ETH, c60_t0xA0b8... for ERC-20)

--max-usd

Maximum allowed transfer value in USD (default: 10000)

--skip-safety-check

Skip the USD-value safety check

--confirm-to

Pin expected resolved address — rejects if ENS resolves differently


swap

Flag
Description

--chain

Source chain (default: ethereum)

--to-chain

Destination chain for cross-chain swaps

--slippage

Slippage tolerance % (default: 1, max: 50)

--quote-only

Preview quote without executing

Use --quote-only to preview without executing.


automate

Create and manage dollar-cost averaging (DCA) and limit-order automations. Both run as scheduled swaps under your stored wallet.

automate add

Create a DCA automation by passing --interval; create a limit order by passing --price (and optional --condition). The two flags are mutually exclusive — exactly one must be supplied.

Flag
Description

--from

Source asset ID, e.g. c60_t0xA0b8... for USDC on Ethereum

--to

Destination asset ID, e.g. c60 for ETH

--amount

Amount of source token per run

--chain

Source chain (default: ethereum)

--interval

DCA interval — accepts 30s, 5m, 1h, 7d, etc. Creates a recurring swap.

--price

Target USD price for a limit order (mutually exclusive with --interval)

--condition

Limit-order trigger: above or below (default: below)

--max-runs

Stop after N executions

--expires

Expiry date in ISO 8601, e.g. 2026-04-01

automate list

automate pause / resume / delete

Use the id returned by automate list. Paused automations stop executing but stay in storage; deleted ones are removed.


onramp

Buy crypto with fiat (onramp) or sell crypto for fiat (offramp) through third-party providers. Quotes are aggregated; the user completes KYC and payment in the provider's hosted browser flow. Available providers depend on the user's region.

onramp quote

Get fiat-to-crypto quotes from multiple providers.

Flag
Description

--amount

Fiat amount, e.g. 100

--asset

Asset ID, e.g. c60 for ETH

--currency

Fiat currency (default: USD)

--wallet

Override the destination address (defaults to your stored wallet's address on the asset's chain)

Quotes are sorted lowest-spread-first; the top row is the provider giving the most crypto for the same fiat input.

onramp buy

Open the provider checkout URL for a chosen quote.

Flag
Description

--quote-id

Quote ID from twak onramp quote

--asset

Crypto asset ID — required when --wallet is omitted (used to derive your destination address)

--wallet

Override the destination address

onramp sell-quote

Get crypto-to-fiat quotes.

Flag
Description

--amount

Crypto amount to sell, e.g. 0.1

--asset

Asset ID being sold

--currency

Fiat currency for the payout (default: USD)

--method

Payout method: ANY, card, bank_transfer (default: ANY)

--wallet

Override the source address (defaults to your stored wallet's address on the asset's chain)

Sorted lowest-spread-first; the top row is the provider returning the most fiat for the same crypto input.

onramp sell

Open the provider checkout URL to complete KYC and reveal the deposit address.

Flag
Description

--quote-id

Quote ID from twak onramp sell-quote

--asset

Crypto asset ID — required when --wallet is omitted (used to derive your source address)

--wallet

Override the source address

onramp sell-confirm

Broadcast the on-chain payout to the provider's deposit address. Run this after completing KYC in the browser and copying the deposit address and exact amount the provider displayed.

Flag
Description

--asset

Asset being sold

--to

Provider's deposit address (shown after KYC)

--amount

Exact amount the provider displays — must match

--memo

Memo / destination tag (Cosmos, XRP, Stellar, BNB Beacon) — funds can be unrecoverable without it when the chain requires one

--quote-id

Optional. Recorded in the output for traceability; the on-chain tx is built from --to / --amount, not from this ID

--max-usd

USD safety cap (default: 10000)

--skip-safety-check

Bypass the USD cap

The deposit address is not under your control — verify it byte-for-byte against what the provider displayed before broadcasting. Signing always happens locally; the browser flow has no access to your keys.


price

Chain is auto-detected from native token symbols (ETH, BNB, SOL, etc.).


balance

Get the native balance for any address using a SLIP44 coin ID.

Common coin IDs: 60 (Ethereum), 0 (Bitcoin), 501 (Solana).



Categories: ai, rwa, memes, defi, dex, bnb, eth, sol, pumpfun, bonk, launchpad, launchpool, layer1.

Sort fields: price_change (default), market_cap, volume.


dapps

Browse featured DApps and protocols.

Categories: defi, dex, lending, nft, gaming, social. Use --categories to list all available.


history


tx


chains


asset


validate


risk

Check token security and rug-risk info.


erc20

erc20 approve

Token uses the Trust Wallet asset ID format (e.g., c60_t0xA0b8...).

erc20 revoke

erc20 allowance


alert

alert create

alert list

alert check

alert delete


x402

Pay for HTTP endpoints that respond with 402 Payment Required. The client signs an on-chain payment authorization (EIP-3009 gasless preferred over Permit2) and retries the request with the proof attached as a PAYMENT-SIGNATURE header.

x402 quote

Preview the payment options an endpoint offers. Read-only — no wallet password required.

Renders a table of available routes (chain + asset + amount + transfer method) sorted preferred-first, plus a Next: line with the exact twak x402 request command to run. Use the same --method/--body you plan to pay with — the server may emit a different challenge per verb.

x402 request

Pay and fetch the resource.

Flag
Description

--max-payment

Required. Max payment to auto-approve, in atomic units of the chosen asset (e.g. 10000 = 0.01 USDC at 6dp).

--method

HTTP method (default: GET). Body is stripped on GET/HEAD.

--body

Raw request body. Sent with Content-Type: application/json.

--prefer-network

Restrict route to a chain — TWAK key (base, bsc, …) or CAIP-2 (eip155:8453).

--prefer-method

Restrict to eip3009 (gasless) or permit2-exact.

--prefer-asset

Restrict to a contract address or a token-name substring (e.g. Tether, USDC).

--yes

Skip the per-payment confirmation prompt. Still capped by --max-payment.

--auto-approve

Skip the one-time Permit2 approve(Permit2, MAX) prompt (you pay gas). Independent of --yes.

Only https:// URLs are accepted; loopback/private IPs are rejected before any network call. EIP-3009 wins by default whenever offered with valid extra.name/extra.version metadata. Common live routes: USDC on base (recommended), USDC/USDT on bsc.

x402 info

Prints inline help for the x402 subcommands.

Server side

To gate your own REST endpoints behind x402, see twak serve --x402 below.


serve

Start an MCP server (stdio) or REST API server for AI agent integrations.

Flag
Description

--rest

Start REST HTTP server instead of MCP stdio

--port

Port for REST server (default: 3000)

--auto-lock

Auto-lock wallet after N minutes of inactivity

The REST server authenticates requests via Authorization: Bearer <HMAC_SECRET>. This is separate from the HMAC signing used by tws.trustwallet.com — the REST server runs locally and uses the raw secret as a shared token for simplicity.

Running automations in the background

DCA and limit-order automations you set up with twak automate are saved, but they only run while a watcher is active. When running the MCP server for an AI agent, start it with twak serve --watch so those automations execute in the background. Tune how often it checks with --watch-interval (for example, --watch-interval 5m; the default is every 60 seconds). Without --watch, your automations are saved but never run.

The background runner uses your local agent wallet. If you've connected through WalletConnect instead, the runner stays idle, since those transactions need manual approval.

Last updated

Was this helpful?