EOA mode is the canonical path for market makers, AI agents, and any consumer with their own EIP-1559 signing infrastructure. The signer IS the trading address — no SimpleAccount indirection, no bundler relay, no ERC-4337 verification overhead.Documentation Index
Fetch the complete documentation index at: https://docs.kash.bot/llms.txt
Use this file to discover all available pages before exploring further.
Construct the client
viemAccountEoaSigner is one of several reference signer adapters.
Others are documented under “Signers” — covers AWS KMS, Fireblocks,
JSON-RPC remote signers (web3signer / clef), Privy embedded wallets,
and Coinbase Smart Wallet. Or implement EoaSignerAdapter yourself;
the protocol is two methods.
Read market state
Place a trade — all-in-one
client.trades.send.buy(...) is the highest-level entry. It builds,
prepares (gas + fees + nonce), simulates, signs, submits, and (by
default) waits for inclusion. Returns the on-chain receipt.
account field is checked at build time against
client.signer.ownerAddress — passing a different address raises
KashSignerError(BUY_ACCOUNT_MISMATCH) synchronously, before any
RPC call. This catches the most common footgun (stale account from
a profile switch) before it costs you a gas-paid revert.
First trade — approve USDC
The market contract needs an allowance to pull USDC for trades. Once per market per signer:send.buy / send.sell
proceeds without an extra approve hop.
Power users — explicit lifecycle
The trade lifecycle has three layers; pick the highest one that fits your control needs:| Layer | When you’d use it |
|---|---|
client.trades.send.<action>(...) | Default. Hummingbot, AI agents, dashboards. |
client.trades.prepare<Action>(...) + manual submit | You want explicit control over signing — log + audit before signing. |
client.trades.build<Action>(...) + hashOf(...) | Construct the unsigned tx, hash it, route to a remote signer yourself. |
KashSignerError(STALE_SIGNED_TX).
Bypass via submit({ skipStalenessCheck: true }) only when you
know the override is intentional.
What’s next
Smart-account quickstart
Same surface, ERC-4337 v0.7 instead of EIP-1559.
Error handling
Typed error hierarchy, retry policies.
Python SDK
Hummingbot strategies and Python market makers.