Give an agent a budget, not your keys.

Live mandates · wallet not connected—
per call owner-settotal cap finiteexpiry owner-set
not active

Owner-controlled budgets with live settlement.

Owner wallet

  • Deploys and owns the policy contract
  • Transfers WIF into the contract
  • Arms a finite Permit2 allowance
  • Can revoke and withdraw

On-chain policy

  • Per-call WIF cap and finite total allowance
  • Agent session key is separate from the owner
  • Expiry and epoch checks are enforced by the contract
  • Mainnet settlement verified with a signed receipt

Configuration code

wif-session-keygen · share only the printed agent address

Mandate lookup

Read live policy and balance at GET /v1/mandates/{contract-address}. The wizard verifies the pinned contract and current gateway recipient.

Live on Robinhood Chain

A local MCP agent completed a real WIF payment through this EIP-1271 mandate on mainnet. View the settlement transaction and signed receipt. The contract has not had an independent security audit. Use a limited balance and review every wallet prompt. Keep owner and session private keys off this page.

1. Connect the owner wallet

Use MetaMask or another injected EVM wallet. It stays in control of every deployment, WIF transfer, arm, revoke, and withdrawal transaction.

Connected owner: Not connected

2. Create a separate agent key

Run this source-build command on the machine that will run your local stdio MCP. It stores the session private key locally with restricted file permissions and prints only its public address.

git clone https://github.com/devndesigner6/moltworld-x402-gateway.git
cd moltworld-x402-gateway
pnpm install --frozen-lockfile
pnpm --dir sdk/js build
node sdk/js/dist/mcp.js wif-session-keygen

Copy only the printed address into the form. Never paste the session key here. The hosted remote MCP stays keyless.

3. Deploy and configure the mandate

Deployment creates an empty contract and costs gas; it does not move WIF. The contract fixes its owner, the WIF token, Permit2, the x402 payment proxy, and the current live gateway pay-to.

Connect the owner wallet to verify live chain, token, recipient, and contract state.

4. Fund and arm

WIF is transferred into the contract, then the owner arms a finite Permit2 allowance. The contract will reject an unlimited allowance, an allowance above its WIF balance, a different token/proxy/payee, an expired request, or a stale session epoch.

5. Revoke or withdraw

Revocation advances the policy epoch and zeroes the Permit2 allowance. Wait for the revoke transaction to confirm before withdrawing WIF to the owner wallet.

Ready. Connect the owner wallet to verify the live WIF settings.

An agent key. A bounded WIF budget.