A self-custodial crypto agent for your desktop.
Keys are generated and encrypted on your machine. The agent proposes on-chain actions. A fail-closed gate sits between every proposal and every signature.
Free and MIT-licensed. No server component, no telemetry, nothing uploaded.
Built on what you already trust
Propose, gate, then sign — in that order.
Keys never leave
EVM and Solana accounts derived from one BIP-39 phrase, encrypted at rest with AES-256-GCM. The master password lives in memory only and is wiped on lock, on quit, and after fifteen idle minutes.
The gate is not optional
Twelve checks run on every fund-moving action, in every mode. An unknown network, an unparseable amount or a thrown error is a block, not a pass. The agent has no way to reach the rules.
You set the autonomy
Four execution modes, from asking before every transfer to running a mission unattended. Autonomy decides whether a human is asked — never whether the gate runs.
Twelve checks stand between the agent and your funds.
Every proposal is answered before anything is signed, and the verdict is shown to you in full — the checks that passed and the one that refused. The transfer allowlist starts empty, so a destination is refused until you deliberately add it.
- Refusals are the default: an error inside a check is a block
- Mainnet cannot be selected until you enable real funds
- Every refusal path has a test covering it
- 01Emergency stop clear
- 02Vault unlocked
- 03Mode permits the action
- 04Network is known
- 05Real funds enabled for mainnet
- 06Amount parses
- 07Under per-transfer limit
- 08Under daily limit
- 09Destination on the allowlist
- 10Balance covers gasnot reached
- 11Simulation succeedsnot reached
- 12Within rate limitnot reached
Autonomous loops that stop for a stated reason.
Point a mission at an objective and a budget. It runs until one of nine terminating conditions is met, and it tells you which one — objective met, deadline reached, capital exhausted, max loss, no opportunities, step limit, emergency stop, operator stop, runtime error.
- Capital and loss ceilings are set before the first step
- The emergency stop refuses all fund movement instantly
- Every step is gated exactly as a manual action would be
A log that shows you when it has been edited.
Every decision is appended to a hash-chained file in your own user directory. Editing a past line breaks every hash after it, and the app names the exact sequence number where the chain gave way.
- Secrets are redacted before anything is written
- Conversations and lessons survive a restart, on disk
- Lessons halve in strength every 30 days unless reinforced
Your machine. Your keys. Your call.
Local by construction
There is no server component and no telemetry. Keys, state, audit log and memory all sit in your OS user directory.
Testnets by default
Sepolia, Base Sepolia and Solana Devnet. Mainnet networks cannot even be selected until you turn real funds on in Guardrails.
A hostile renderer
The UI is sandboxed with no Node and no network access at all. Signing authority never crosses the process boundary.
Start on a testnet. Move to mainnet when you trust it.
Create a vault, write down the recovery phrase, and point the agent at Sepolia. It is shown once and cannot be recovered.
MIT licence — Windows 10/11 and macOS 12+. Node 20+ to build from source.