{"uid":"cap_wiGJJYah52Dfu4i0yFx2i","slug":"agent-spend-controls-approval-risk-gate-wallet-limits-d6750c4c","name":"Agent Spend Controls – Approval Risk Gate & Wallet Limits","description":"Hosted agent spend controls for autonomous wallets: approval-risk gate, per-call and per-counterparty limits, wallet risk score, transaction-pattern burst signals, risky spender approvals, and autopay spend policy from fresh D1 wallet snapshots plus live allowance reads. Price 0.25 USDC on Base via x402. Demo: https://wallet-portfolio-history-mcp.mtree.workers.dev/demo/tools/agent_spend_controls. Contact: https://wallet-portfolio-history-mcp.mtree.workers.dev/contact.","url":"https://wallet-portfolio-history-mcp.mtree.workers.dev/tools/agent_spend_controls","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["address"],"properties":{"chain":{"enum":["base","ethereum","arbitrum","optimism","polygon"],"type":"string"},"limit":{"type":"integer","maximum":50,"minimum":1},"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"refresh":{"type":"boolean"}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":{"request":{"input":{"body":{"chain":"base","limit":10,"address":"0x1234567890123456789012345678901234567890","refresh":false},"type":"http","method":"POST","bodyType":"json"}},"response":{"ok":true,"chain":"base","route":"/tools/agent_spend_controls","result":{"chain":"base","source":"hosted D1 wallet snapshots + allowance risk + transaction-pattern + counterparty graph + spend-limit derivation","address":"0x1234567890123456789012345678901234567890","controls":[{"value":true,"reason":"hosted D1 wallet snapshots refresh on cron and paid query","control":"fresh_snapshot_required"},{"value":100,"reason":"standard_controls","control":"per_call_usd_limit"},{"value":60,"reason":"standard_counterparty_cap","control":"per_counterparty_24h_usd_limit"},{"value":false,"reason":"low","control":"approval_review_required"},{"value":false,"reason":"no_risky_curated_approval_detected","control":"block_on_risky_approvals"},{"value":false,"reason":"failed-call and transaction-pattern telemetry","control":"manual_review_on_failed_tx_burst"}],"control_band":"standard_controls","next_actions":["allow_standard_agent_spend_limits","refresh_before_new_counterparty_or_token_action"],"decision_inputs":{"activity_risk_score":0,"risky_approval_count":0,"active_approval_count":0,"counterparty_risk_score":0,"spend_limit_policy_score":0,"token_approval_risk_score":16,"transaction_pattern_score":0},"buyer_vocabulary":["agent spend controls","autonomous agent spend policy","wallet spend controls","approval risk","wallet approval risk","autopay spend policy","agent payment safety"],"dataset_fresh_at":"2026-06-19T04:43:45.000Z","recommended_agent_policy":"standard_autopay_limits_ok_with_periodic_refresh","agent_spend_control_score":3},"address":"0x1234567890123456789012345678901234567890","service":"wallet-portfolio-history-mcp","freshness_score":75,"source_coverage":{"rpc_native_balance":false,"dataset_writes_to_d1":true,"curated_erc20_balances":2,"protocol_watchlist_size":4,"rpc_native_balance_error":"HTTP request failed.\n\nStatus: 521\nURL: https://base.llamarpc.com/\nRequest body: {\"method\":\"eth_getBalance\",\"params\":[\"0x1234567890123456789012345678901234567890\",\"latest\"]}\n\nDetail","transaction_history_source":"base.blockscout.com","curated_defi_receipt_tokens":3,"transaction_history_supported":true},"dataset_fresh_at":"2026-06-19T04:43:45.000Z"}},"exampleRequest":{"chain":"base","limit":10,"address":"0x1234567890123456789012345678901234567890","refresh":false},"tags":["x402"],"displayCostAmount":"0.25","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.25/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.25","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_EkbKHHqaurNW9O_zHfoBn","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.25","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Evaluates autonomous agent wallet spend requests against approval-risk gates, per-call/per-counterparty limits, burst signals, risky spender flags, and autopay policy using live allowance data and fresh wallet snapshots","exampleAgentPrompt":"Before my agent sends 50 USDC to 0xAbC123 on Base, run spend controls on wallet 0xMyWallet — check the per-call and per-counterparty limits, flag any burst signals or risky spender approvals, and tell me if the autopay policy allows this transaction.","exampleUseCases":null,"resultDescription":"Returns an approval/risk gate decision including per-call and per-counterparty limit status, wallet risk score (0-100), burst/anomaly signals, risky spender approval flags, and an autopay spend policy recommendation derived from fresh D1 wallet snapshots and live on-chain allowance reads.","failureModes":["Invalid or unrecognized wallet address returns an error or empty result","Payment of 0.25 USDC on Base not received causes 402 rejection","Wallet has no transaction history resulting in limited scoring signals","Counterparty address not found in risk graph returns neutral/unknown rating","D1 snapshot stale or unavailable causing degraded policy recommendation"],"whenToPreferThis":"Use this endpoint when an AI agent needs a holistic, gate-style spend control check before executing a wallet transaction — combining limit enforcement, burst detection, risky-spender flags, and autopay policy in a single call rather than assembling individual risk signals separately.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:35:57.239Z","isFirstParty":false}