evm

evmSDK

Ethereum, Base and any EVM chain you configure. One command catalog shared by an Effect SDK, a JSON CLI, a terminal UI and an MCP server, built so agents can drive it without guessing.

Clay terminal with curly braces on a plinth, two hex tokens and a stack of blocks in sea-glass green.

What you can do

Discover, then call

Every command publishes its input and output schema before you run it.

  • discover lists commands with their schemas, error codes and execution conventions.
  • Pass arguments with --input, --file or --stdin. Results are JSON; watches stream NDJSON.
  • Errors carry a stable code and exit with status 1, so a script or agent can branch on them.

Contracts & chain data

Inspect, read and decode with an ABI or plain signatures.

  • inspect, read, decode, identity, resolve-name, balance, token, block, transaction and logs.
  • Supply an ABI or human-readable signatures. Verified ABI discovery needs an Etherscan key.
  • Proxy lookup covers the EIP-1967 implementation slot. Log pagination returns a continuation block and offset.

Quantities cross JSON as decimal strings. Native values are wei. units refuses to lose precision.

Guarded execution

Prepare a plan with one idempotency key. Review it. Then execute.

  • prepare and prepare-call bind the exact chain, account, target, calldata and value.
  • execute rechecks chain, account, simulation, expiry and policy. --yolo skips only the approval prompt, for one invocation.
  • status, wait, cancel, replace and attach-transaction recover interrupted or repriced work.

Signed bytes, hash and nonce persist before broadcast. Retrying execute rebroadcasts the same bytes instead of signing again.

Wallets

Browser, mobile or Crossmint smart wallet. Keys stay where they were.

  • wallet connect --browser discovers injected wallets with EIP-6963 and prefers Rabby. WalletConnect supplies a URI and QR for mobile.
  • --smart opens a hosted Clerk login and Crossmint smart wallet page. Passkeys still need their owner's approval, even with --yolo.
  • The browser bridge binds an exact origin, random token, chain and account, listens on loopback only and never carries JWTs or private keys.

Unattended agents use an explicitly provisioned SDK signer or EVM_PRIVATE_KEY. Keys are never CLI arguments and never written to the journal.

Swap & bridge

Socket routes, bound to one reviewed quote.

  • socket-chains, socket-tokens and socket-quote use Socket V3's public endpoint. swap requests a same-chain route.
  • bridge-prepare pins account, recipient, tokens, amounts, slippage, deadline and calldata. bridge-run executes approval and route in order.
  • bridge-status and bridge-wait check the destination receipt and ERC-20 transfer before calling settlement verified.

Approvals are exact. Workflows are sequential, not atomic. An expired route needs a fresh quote and a new key.

Policies, batches & workflows

Put limits on chains, recipients, selectors, fees and budgets.

  • policy-create, policy-revoke and policies constrain the configured EOA signer. An allowance reserves its full amount.
  • batch-prepare, batch-run and batch-status use EIP-5792 wallet batches and persist the batch ID before submission.
  • workflow-create, workflow-run, workflow-status, workflow-cancel and verify-outcome chain steps with checks.

Crossmint and wallet batches reject EOA policy bounds. Smart signers need separately configured on-chain scopes.

Monitoring & indexed data

Watch addresses and contracts. Cursors survive restarts.

  • watch and watch-contract stream NDJSON. monitor-create, monitor-poll, monitor-ack, monitor-pause and monitors keep state across runs.
  • portfolio exposes indexed holdings with provider and coverage information. Blockscout support is limited to configured networks.
  • aero, vault and lending read protocols and prepare ABI calls. workspace, save and remove keep contracts you use often.

RPC alone cannot enumerate every asset or allowance.

TUI, MCP & SDK

The same catalog behind a keyboard UI, an MCP server on stdio and typed Effect workflows.

  • evm tui: Ctrl+K searches commands, Ctrl+W connects a wallet, Tab moves through fields, Ctrl+R runs, Ctrl+E approves the displayed plan.
  • evm mcp serves the same command catalog to any MCP client over stdio.
  • runtimeLayer and dispatch from @beegreat/evm compose in Effect. Streams implement bounded watches and polling.

Credentials, custody and signer scopes stay with the caller. The UI does not provision scoped agent signers.

Built-in RPCs cover Ethereum, Base, Sepolia, Base Sepolia, Arbitrum, Optimism, Polygon, BNB Chain and local Anvil. Other chains need an RPC URL. Crossmint support uses its own narrower chain map.

Made for agents, readable by people

Ask what exists. Prepare with one key. Execute only what you reviewed. Check status without side effects.

SQLite coordinates processes sharing one journal. An unresolved operation blocks new submissions for that account and chain until you reconcile it.

$ evm discover
{ "commands": [ "read", "prepare-call", "execute", "status", … ] }

$ evm prepare-call --file transfer.json
{ "id": "op_7f3a…", "state": "unsigned", "chainId": "8453",
  "fingerprint": "sha256:9c1e…", "simulation": { "success": true } }

$ evm execute --input '{"id":"op_7f3a…"}' --yolo
{ "id": "op_7f3a…", "state": "pending", "hash": "0x4b2d…" }

$ evm status --input '{"id":"op_7f3a…"}'
{ "id": "op_7f3a…", "state": "included", "block": "36211904", "confirmations": "3" }

Highly experimental. Use at your own risk.

evmSDK is early beta software built with AI coding agents. Expect bugs, incomplete features, incorrect or stale data, and breaking changes. Commands, transaction plans and wallet flows may behave unexpectedly. Do not treat it as production-ready or assume it has passed an independent security audit.

Wallet-connected actions can sign and broadcast real transactions. A mistake in an amount, token address, approval, network or transaction can permanently lose funds. A successful simulation is not a guarantee that execution is safe or will succeed. Fee estimates can change after signing. Inclusion, safe and finalized blocks are distinct; call status again to detect reorgs.

Start with read-only commands. Prepare first, read the plan, then independently check the network, contract addresses, amounts, slippage and spending approvals before executing. Never retry a timed-out action under a new idempotency key without inspecting the persisted operation. Use a separate wallet with only small amounts you can afford to lose. Never share your seed phrase or private key.

Independent and unofficial.

evmSDK is not affiliated with, endorsed by, sponsored by, or maintained by Aerodrome Finance, Velodrome Finance, Dromos Labs, Mellow Protocol, Socket, Crossmint, WalletConnect or Rabby. It is not an official product or support channel for any of those teams.

Protocol and product names describe compatibility or source attribution only. All trademarks belong to their respective owners. Original contributions and third-party material have different license terms. Read the repository's LICENSE and NOTICE before reuse or redistribution.