mcpField
A
aomi-transact

aomi-transact

github.com/aomi-labsOther841 installsUpdated 6d ago
Repository

About aomi-transact

Aomi Transact is a skill for using the `aomi` TypeScript CLI to create crypto agents and web3 assistants through natural-language requests. It queues wallet transactions for simulation and explicit signing, with a non-custodial workflow.

Key features

  1. 01Natural-language crypto requests
  2. 02Transaction queue inspection
  3. 03Batch fork simulation
  4. 04Explicit wallet transaction signing
  5. 05Session and chain management

Use cases

  1. 01Checking crypto prices, balances, or routes
  2. 02Simulating multi-step transactions before signing
  3. 03Building and signing wallet requests
  4. 04Managing CLI sessions and chains

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aomi-labs/skills --skill aomi-transact

After installing, type/aomi-transactin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
README.md
SECURITY.md
.claude-plugin/
plugin.json
.codex-plugin/
plugin.json
agents/
openai.yaml
references/
account-abstraction.md
apps.md
commands.md
drain-vectors.md
examples.md
gotchas.md
session.md
troubleshooting.md
workflows.md
templates/
aomi-workflow.sh

Details

From the project README

Aomi Transact

Overview

Aomi Transact drives the aomi TypeScript CLI to build natural-language crypto agents and web3 assistants. It composes calldata, fork-simulates transactions as a batch, and stages wallet requests for explicit user signing — non-custodial throughout. Current chain metadata includes Ethereum, Polygon, Arbitrum, Base, Base Sepolia, Optimism, Sepolia, Linea, Linea Sepolia, Monad, Monad Testnet, Robinhood Chain, MegaETH, and local Anvil. The npm CLI is the production/end-user surface; the Rust aomi-cli in product-mono is an in-process dev/test CLI with a different command surface — never mix the two. For deep references, see commands.md, workflows.md, gotchas.md, account-abstraction.md, apps.md, examples.md, session.md, drain-vectors.md, troubleshooting.md.

Prerequisites

  • Node.js 18+ with npm or npx
  • @aomi-labs/client v0.6.0 or newer: npm install -g @aomi-labs/client@latest
  • For EVM signing: a 0x-prefixed private key via aomi wallet set, --private-key, or PRIVATE_KEY
  • For Solana sign-only flows: a base58 or JSON keypair via aomi wallet set --solana (which also persists the cluster; --cluster overrides), --solana-private-key, or SOLANA_PRIVATE_KEY
  • Optional: AOMI_ACCOUNT_BEARER / --account-bearer for authenticated account-bound requests
  • Native gas on the destination chain for the signing EOA — local signing is EOA-only, so there is no sponsorship fallback

Instructions

  1. Detect the CLI and check its version: aomi --version 2>/dev/null || npx @aomi-labs/client@latest --version. If it prints below 0.6.0, stop and tell the user to run npm install -g @aomi-labs/client@latest, or prefix every command with npx @aomi-labs/client@latest instead. An already-installed global aomi is never upgraded by installing this skill, and the pre-0.4 surface differs.
  2. Start a new session: aomi chat "<task>" --new-session
  3. Inspect queue: aomi tx list
  4. For multi-step flows, simulate first: aomi tx simulate tx-1 tx-2
  5. Sign: aomi tx sign tx-1
  6. Verify: aomi session status or aomi session log

For the full procedure (read-only requests, building wallet requests, signing policy, batch simulation, secret ingestion), see workflows.md.

Examples

aomi chat "what is the price of ETH?" --new-session
aomi chat "swap 1 ETH for USDC" --new-session --public-key 0xYourAddress --chain 1
aomi tx list && aomi tx simulate tx-1 tx-2 && aomi tx sign tx-1 tx-2
aomi chat "stake 0.5 ETH on Lido" --app lido --chain 1 --new-session

Four end-to-end walkthroughs (approve+swap, lending, bridging, staking) in examples.md. Per-app first-turn examples (Khalani, 0x, Polymarket, Binance, Neynar) in apps.md.

Output

  • aomi chat: agent response or ⚡ Wallet request queued: tx-N
  • aomi tx list: table of pending/signed tx ids with batch_status
  • aomi tx simulate: per-step success/failure, revert reason, gas usage
  • aomi tx sign: transaction hash and on-chain confirmation

Error Handling

ErrorCauseSolution
insufficient funds for transferSigning EOA has no native gasFund the EOA on the destination chain — local signing has no sponsorship path
AA execution now runs in the backend laneAn AA path was selected on tx signDrop --aa/--aa-provider/--aa-mode; if no flags were passed, unset AOMI_AA_PROVIDER/AOMI_AA_MODE
stateful: false in simulationWrong batch orderReorder tx ids to match execution dependency
RPC 401/429Rate-limited or missing keySet --rpc-url to authenticated endpoint
No tx queued after chatAgent returned quote firstRun aomi tx list; send a confirmation reply
Orphaned tx-N in listPrevious simulation failedOnly sign txs with batch_status: passed
Failed to get apps/models: HTTP 404Public backend does not expose that introspection routeTreat app list/model list as backend-dependent; do not block chat/sign flows on it

Full troubleshooting in troubleshooting.md.

Safety Justification

This skill is risk_tier: L2 because it can sign and broadcast on-chain transactions. The permissions manifest enforces least privilege:

  • Shell allowlist scopes execution to aomi and npx @aomi-labs/client@latest only — no arbitrary subprocesses.
  • Network allowlist restricts outbound traffic to chat.aomi.dev (the CLI's default backend; api.aomi.dev is the legacy host). User-supplied --rpc-url endpoints are resolved by the CLI itself; operators must review them before allowing signing.
  • File scope is read+write to ~/.aomi/ only; identity files (SOUL.md, MEMORY.md, AGENTS.md) are deny-listed against writes per OWASP AST03 mitigation #3.
  • No blind signing. Multi-step flows go through aomi tx simulate on a forked chain before aomi tx sign. Drain-vector calldata fields (recipient, onBehalfOf, mintRecipient, _to) are blocked at simulation time when they do not equal msg.sender — see drain-vectors.md.
  • Opaque credentials. The skill never fabricates, derives, or echoes credential values; setup commands run only when the user explicitly asks and supplies the value in this turn. Full rules in gotchas.md → Hard Rules.

When to Use

  • The user wants to chat with the Aomi agent from the terminal.
  • The user wants balances, prices, routes, quotes, or transaction status.
  • The user wants to build, simulate, confirm, sign, or broadcast wallet requests.
  • The user wants to inspect or switch apps, models, chains, or sessions.
  • The user wants to inspect or change Account Abstraction preferences (synced to the backend lane).
  • The user wants to authenticate a CLI account with aomi account login, inspect it with aomi account whoami, or inspect linked wallets and login methods with aomi account links.
  • The user wants to build a new app from an API spec or SDK — use the companion skill aomi-build.

Command Surface

aomi                                Interactive REPL
aomi --prompt "<message>"           Send one prompt and exit
aomi chat <message>                 Send a message
aomi tx list|simulate|sign
aomi session list|new|resume|delete|status|log|events|close
aomi model list|set|current
aomi app list|current
aomi chain list|set|current
aomi wallet set|current|whoami
aomi account login|whoami|logout|links|link|unlink|rename|update|delete|sessions|switch
aomi logout
aomi config set-backend|current
aomi secret list|clear|add

There is no aomi thread, aomi cron, aomi login, or aomi wallet ls|dev-key|set-mode on this CLI — those belong to the separate Rust aomi-cli. aomi deploy is advertised in --help but unreachable in v0.4.2 (fix pending in aomi-labs/aomi#467). Full command reference, flags, and env vars in commands.md.

Resources

Comments

Markdown supported