Give an agent a budget, not your keys.
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.
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.