Skip to content

Wallets and payouts

Choose the wallets that operate your agent provider and receive its USDC payments. Start with Circle or connect another wallet provider.

On this page

Choose your wallet provider

Circle Agent Wallet is the quickest path through MPPI's built-in setup. Another wallet provider works through an explicit integration. MPPI does not require a Circle account for that path.

Why Circle Agent Wallet

  • Built-in MPPI adapter: use the documented setup without writing wallet integration code.
  • Email account setup: Circle creates your wallets after you sign in.
  • MPC key management: Circle uses two key shares and does not expose them to the agent.
  • Sponsored transaction gas: subject to Circle's caps and fair-use rules. You still fund inference with USDC.

Circle is a wallet service, so your application depends on its availability and authentication. Keep login access current. MPPI's separate session signing credential still needs private, durable storage.

Create your Circle account

First install Node.js 20.18.2+ and Circle CLI. Your Agent Wallet account is created during email login in the terminal; this setup does not use a Circle Console API key.

Shell
npm install -g @circle-fin/cli@1.1.4

MPPI's Circle adapter accepts only this verified CLI version and refuses any other before anything is sent; other wallets are not affected.

Replace the email with your own. Read and accept Circle's terms, then enter the emailed code yourself. Keep the inbox and code out of your agent's access.

Shell
circle wallet login [email protected] --testnet

After login succeeds, select your wallet on Arc testnet:

Shell
circle wallet list --type agent --chain ARC-TESTNET

Use this address for the operator. Your payout recipient needs a different address with signing custody outside the serving machine; another address under the same Circle account still shares custody.

Use another wallet provider

Supply a TransactionWallet to the Python Mppi constructor or the Rust Mppi::new constructor. The adapter must execute the exact contract call and reconcile its original operation reference without submitting again.

Its address must match the registered operator. Keep the payout recipient and its signing access separate. This is an application integration; the built-in Circle from_config helper does not switch wallet vendors.

Who authorizes what

Opens and funds escrow

Funding wallet

Authorizes the fixed signer. Receives unused USDC on an eligible confirmed exit.

Signs off-chain proofs

Session signer

Signs runs, vouchers, attachment and cooperative close. Cannot move wallet funds itself.

Operates payment collection

Provider operator

Uses the session's frozen authority to submit eligible capture and close transactions.

Receives captured USDC

Payout recipient

Also has contract authority for eligible capture and close. Keep its signing custody outside serving.

Funding wallet → MPPI escrowCapture → recipientRefund → funding wallet

Use a provider operator wallet distinct from the payout recipient. The serving process accesses the operator through Circle; the recipient's signing custody stays outside serving. Separate addresses under one Circle account still share account custody.

The contract permits the session's frozen operator or recipient to perform eligible capture and close operations. Refunds always return to the funding wallet. A recipient update affects new sessions; it does not redirect an existing session.

The session signer is immutable for that session. Circle logout, login renewal or wallet policy changes do not revoke signatures it already issued. Ordinary amount, status and collection-deadline checks still apply.

Identity and discovery

ERC-8004 supplies a public identity and the provider's published service location and catalogue. Identity registration does not prove availability, execution quality or token counts. The SDK verifies the identity, origin, catalogue and trusted deployment before admitting paid work.

Retain the right state

Keep mppi.toml, its onboarding/update records and its original wallet-operation journal together in a private, durable directory. Keep runtime usage history and recovery checkpoints in your own storage. The CLI journal is not an inference database.

Renew Circle login for the same wallet when it expires. If execution loses its result before the Circle transaction ID is retained, the original operation remains unknown. Do not infer its identity from a similar history entry, delete the journal or submit a replacement to clear the uncertainty.

Wallets and payouts | Agent providers | MPPI Docs