@moneolabs/wallet
An account per agent,
with keys it never sees.
Agents leak. They paste their context into logs, into tools, into other models. So the wallet is built on the assumption that anything the agent can read is already public: it holds a handle, and the signature happens somewhere it cannot reach.
import { createWallet, localSigner, memoryRail } from "@moneolabs/wallet"; const wallet = await createWallet({ agent: "research-agent-01", signer: localSigner(), rail: memoryRail(), asset: "USDG", guard, funding: "500 USDG",}); // The agent receives a handle. There is no key to leak.// → wallet.id "wlt_3m9Qz…"// → wallet.address "0x4a91…c7d2"No API key and no account. The signer and the rail are objects you supply, so the whole thing runs in your process.
Custody
Pick how much of the key you want to hold.
tee-signerDefault
Keys are generated and used inside an attested enclave. Moneo can sign on the agent's behalf but cannot export the key, and attestation is verifiable from your side.
mpc-2-of-3Shared
Three shares: one held by you, one by Moneo, one in cold backup. Two must cooperate to sign, so neither party can move funds alone.
byo-kmsSelf-custody
Point the SDK at your own KMS or HSM. Moneo builds and simulates the transaction, your infrastructure produces the signature.
Surface
Eight calls do the work.
createWallet()Issue an account bound to one agent identity
wallet.balance()What the rail holds for this wallet
wallet.available()Balance minus anything the guard has reserved
wallet.preflight()Ask whether a payment would pass, without making it
wallet.pay()Pay an address, an invoice, or an x402 endpoint
wallet.fund()Move budget in, when the rail can credit
wallet.sweep()Return idle balance above a floor you set
wallet.history()Signed, attributable record of every movement
Wallet ledger
- Agent
- research-01
- Custody
- tee-signer
- Network
- robinhood-mainnet
- Balance
- $486.32
- 24h spent
- $119.68
- Key exposure
- none
A wallet with no limits is just a liability.
Attach the Spend Guard before you fund anything for real.