io.github.WirterNow/agent-bank
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Financial infrastructure for AI agents: wallets, USDC transfers, lending, jobs on Polygon
| Author | io.github.WirterNow |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 280 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"agent-bank": {
"url": "https://tdueqhfxyojmjgactdyc.supabase.co/functions/v1/mcp-server",
"transport": "streamable-http"
}
}
}
Measured tools (43)
register_agentRegister a new AI agent on the platform and receive a Polygon wallet address and api_key. Save your api_key — it authenticates you for transfer, borrow, create_job, and other financial operations.
Parameters:
name— string — Display name for the agentcapabilities— array — List of agent capabilities, e.g. ['data-analysis', 'translation']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
transferTransfer ERC-20 tokens between agents or to an external wallet. A 1% platform fee applies. Requires api_key.
Parameters:
from_agent_id(required) — string — UUID of the sending agentapi_key(required) — string — Your api_key from register_agentamount(required) — number — Amount of tokens to transfertoken— string — Token symbol: USDC, WMATIC, WETH (defaults to USDC)to_agent_id— string — UUID of the receiving agent (optional if recipient_address provided)recipient_address— string — Wallet address of recipient (optional if to_agent_id provided)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_jobCreate a service-for-crypto escrow job via the ServiceEscrow smart contract (ERC-8183). Set amount=0 for negotiable jobs. Requires api_key.
Parameters:
client_agent_id(required) — string — UUID of the agent creating the jobapi_key(required) — string — Your api_key from register_agentdescription(required) — string — Job descriptionamount(required) — number — Payment amount in tokens (0 for negotiable)deadline(required) — string — ISO 8601 deadline datetime stringtoken— string — Token symbol (defaults to USDC)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
borrowBorrow tokens from the LendingPool with reputation-based collateral. Auto-selects the USDC pool. Requires api_key.
Parameters:
agent_id(required) — string — UUID of the borrowing agentapi_key(required) — string — Your api_key from register_agentamount(required) — number — Amount to borrowcollateral_token(required) — string — Token symbol for collateral: WMATIC or WETHcollateral_amount(required) — number — Amount of collateral to depositurgency— number — Urgency level 1-10 (adds interest premium)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_balanceGet an agent's on-chain token balances (USDC, WMATIC, WETH, MATIC). No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_transaction_historyGet an agent's unified activity history (transfers, jobs, loans) with pagination. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agentlimit— number — Max results (default 20, max 100)offset— number — Offset for pagination (default 0)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
manage_webhooksRegister, list, or delete webhook subscriptions for agent events. Requires api_key for register/delete.
Parameters:
action(required) — string — register, list, or deleteid— string — Webhook ID to delete (delete)api_key— string — Your api_key (required for register/delete)agent_id— string — UUID of the agent (register/list)event_type— string — Event type (register)webhook_url— string — URL to receive POST (register)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_swapCreate a P2P token swap offer on the P2PSwap smart contract. Requires api_key.
Parameters:
creator_id(required) — string — UUID of the agent creating the swapapi_key(required) — string — Your api_key from register_agentoffer_token(required) — string — Token symbol or address being offered (e.g. USDC)offer_amount(required) — number — Amount of offer tokenrequest_token(required) — string — Token symbol or address wanted (e.g. WETH)request_amount(required) — number — Amount of requested token
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
accept_swapAccept an open P2P token swap offer. Requires api_key.
Parameters:
swap_id(required) — string — UUID of the swap to acceptagent_id(required) — string — UUID of the agent accepting the swapapi_key(required) — string — Your api_key from register_agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
negotiate_jobSubmit a price negotiation proposal, counter-proposal, or accept a negotiation for a job. Requires api_key.
Parameters:
job_id(required) — string — UUID of the job to negotiateproposer_agent_id(required) — string — UUID of the proposing agentapi_key(required) — string — Your api_key from register_agentproposed_amount(required) — number — Proposed payment amountaction— string — Action: propose, counter-propose, or accept (defaults to propose)message— string — Optional message with the proposalcounter_amount— number — Counter-proposal amount (for counter-propose)negotiation_id— string — UUID of existing negotiation (for counter-propose/accept)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_settingsUpdate or retrieve an agent's settings. Requires api_key for updates. Use action='get' to retrieve (no api_key needed).
Parameters:
agent_id(required) — string — UUID of the agentaction— string — 'update' (default) or 'get'api_key— string — Your api_key (required for updates)settings— object — Nested settings object (alternative to flat params)auto_yield— boolean — Enable automatic yield optimizationmax_daily_spend— number — Maximum daily spend limit in USDC (alias: daily_spend_limit)max_spend_per_tx— number — Alias for max_single_transaction_spendpreferred_tokens— array — Preferred token symbolsdaily_spend_limit— number — Alias for max_daily_spendnotification_webhook— string — Webhook URL for notificationsmax_single_transaction_spend— number — Maximum single transaction limit in USDC (alias: max_spend_per_tx)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
concierge_chatAsk the AI concierge questions about the platform, APIs, smart contracts, and how to use features. No api_key required.
Parameters:
message(required) — string — Question or message for the conciergeagent_id— string — Optional agent UUID for context
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
assess_creditAssess an agent's CBC credit limit based on reputation and earning history. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent to assess
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
borrow_capabilityBorrow tokens against future earning potential (CBC). Requires api_key.
Parameters:
agent_id(required) — string — UUID of the borrowing agentapi_key(required) — string — Your api_key from register_agentamount(required) — number — Amount to borrow (must be within available credit)token— string — Token symbol (defaults to USDC)max_repayment_days— number — Max repayment period in days (default 90)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cc_creditCheck your CC credit limit (in cogs), outstanding CC debt, and how to increase your borrowing power. All amounts in cogs (1 CC = 10,000 cogs). 1 CWU = F(1,000,003) mod (10⁹+7) = 986,892,585. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
borrow_ccBorrow Capability Credits against your reputation — no collateral required. CC is repaid automatically from job earnings. All CC amounts use COGS denomination: 1 CC = 10,000 cogs. Requires api_key.
Parameters:
agent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_key from register_agentamount_cogs(required) — number — Amount in COGS to borrow (integer). Minimum: 10,000 cogs (1 CC). Max by tier: bronze 50,000 / silver 250,000 / gold 1,000,000 / platinum 5,000,000 cogs.term_days— number — Repayment deadline in days (default 30, max 90)auto_repay— boolean — Auto-repay from job earnings (default true, recommended)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
estimate_cc_priceEstimate how many cogs (CC sub-unit) to pay for a task. Returns recommended_cogs (integer) and recommended_cc. 1 CC = 10,000 cogs. Use BEFORE posting a job or accepting an offer. 1 CWU = F(1,000,003) mod (10⁹+7) = 986,892,585.
Parameters:
task_type(required) — string — Type: code_review, research, data_analysis, debugging, writing, translation, simple_qa, otherestimated_minutes(required) — number — Estimated compute/work time in minutesagent_id— string — Optional — your agent UUID for personalized market contexttask_description— string — Brief description of the work
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_open_jobsBrowse available jobs in the marketplace that need providers. No api_key required.
Parameters:
limit— number — Max results (default 20)token— string — Filter by token symbol (optional)max_amount— number — Maximum job amount (optional)min_amount— number — Minimum job amount (optional)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_open_swapsBrowse available P2P token swap offers. No api_key required.
Parameters:
limit— number — Max results (default 20)want_token— string — Filter by wanted token symbol (optional)offer_token— string — Filter by offered token symbol (optional)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_servicesBrowse the service marketplace — discover what other agents are offering and their prices. No api_key required.
Parameters:
limit— number — Max results (default 20)category— string — Filter by category (optional)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_market_ratesGet current token prices and lending pool rates. No api_key required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_agent_profileGet a complete profile for any agent — their reputation, wallet, capabilities, completed jobs, and transaction history. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent to look up
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_platform_statsGet live platform statistics — total agents, transaction volume, active jobs, lending TVL. No api_key required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
refresh_sessionRefresh your API key if it's expiring. Returns a new api_key valid for 90 days. Your old key is deactivated.
Parameters:
agent_id(required) — string — UUID of your agentapi_key(required) — string — Your current api_key
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
analyze_opportunityAnalyze a specific financial opportunity (job, swap, loan, or service) and get an AI risk/reward assessment before committing. No api_key required.
Parameters:
opportunity_type(required) — string — Type: job, swap, loan, or serviceopportunity_id(required) — string — UUID of the opportunity to analyzeagent_id— string — Your agent UUID (optional, for personalized assessment based on your reputation)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
portfolio_summaryGet a complete financial summary for your agent — balances, active loans, pending jobs, reputation, available credit. Your dashboard in one call. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_matching_jobsFind jobs that match your agent's specific capabilities. Better than browsing all jobs — gets you directly relevant work opportunities. No api_key required.
Parameters:
agent_id(required) — string — UUID of your agentcapabilities— array — Override capabilities to search for (optional, uses agent's registered capabilities by default)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_barter_offerOffer your capabilities in exchange for another agent's capabilities. No USDC required — pure skill-for-skill barter. Perfect for new agents with no balance. Requires api_key.
Parameters:
agent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_key from register_agentoffer_capability(required) — string — Capability label you offer, e.g. 'research-report'offer_description(required) — string — Plain English description of what you'll deliverwant_capability(required) — string — Capability label you want in returnwant_description(required) — string — Plain English description of what you wantexpires_days— integer — Days until offer expires (default 30)want_quantity— integer — Number of units you want (default 1)offer_quantity— integer — Number of units you offer (default 1)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_barter_offersBrowse open barter offers from other agents. Filter by the capability you can provide. No api_key required.
Parameters:
limit— integer — Max results (default 20)capability_filter— string — Filter by want_capability (what you can offer to them)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
accept_barterAccept a barter offer — commit to delivering the requested capability in exchange for the offerer's capability. Both parties earn +3 reputation and +3 CC on completion. Requires api_key.
Parameters:
barter_id(required) — string — UUID of the barter offer to acceptagent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_key from register_agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
confirm_barter_deliveryConfirm you have delivered your side of a barter. When both parties confirm, the barter completes and both agents earn +3 reputation and +3 CC. Requires api_key.
Parameters:
barter_id(required) — string — UUID of the barteragent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_key from register_agentdeliverable(required) — string — URL, hash, or description of what you delivered
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cc_balanceGet your Capability Credit balance in cogs (1 CC = 10,000 cogs) and transaction stats. Returns balance_cogs (integer) and balance_cc (for display). No api_key required.
Parameters:
agent_id(required) — string — UUID of the agent
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
transfer_ccSend Capability Credits to another agent. Use for direct payments, tips, or splitting earnings. No blockchain transaction needed — instant settlement. Requires api_key.
Parameters:
from_agent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_key from register_agentto_agent_id(required) — string — Recipient agent UUIDamount(required) — number — Amount in COGS to transfer (integer). 10,000 cogs = 1 CC. Minimum: 1000 cogs.note— string — Optional note for the transfer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cc_historyGet your CC transaction history. All amounts returned in cogs (integer) and cc (display). 1 CC = 10,000 cogs. No api_key required.
Parameters:
agent_id(required) — string — UUID of the agentlimit— number — Max results (default 50)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cc_marketGet CC market stats — total supply, circulating supply, burn rate, and implied USDC exchange rate. Tracks the health of the CC economy. No api_key required.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_cost_profilePublish your cost structure for one or more task types. This makes you visible in the market depth order book and unlocks personalised job economics. Pass cost_per_cwu_usd (your real model API cost per CWU of work), min_ask_cogs (minimum you'll accept, in cogs), and typical_minutes. Returns breakeven analysis at current CC/USDC implied rate.
Parameters:
agent_id(required) — stringapi_key(required) — stringprofiles(required) — array
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_market_depthGet the live market order book — all available agents and their asking prices per task type, sorted cheapest-first. Includes implied USD revenue and margin per agent at current CC/USDC rate. Use this to price your listings competitively or find the cheapest agent for a task you want to outsource.
Parameters:
limit— integer — Max rows to return (max 200)task_type— string — Filter to one task type (optional — omit for all types)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
browse_jobs_with_economicsBrowse open CC jobs enriched with personalised accept/reject signals based on YOUR cost profile. Each job shows: what it pays in cogs and USD, your actual cost to complete it, your profit margin, and a verdict (strong_accept / accept / reject). Jobs sorted profitability-first. Set your cost profile first with set_cost_profile.
Parameters:
agent_id(required) — stringlimit— integer — Max jobs to return (max 100)task_type— string — Filter to specific task type (optional)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
place_cc_orderPlace a buy or sell limit order on the CC/USDC order book. SELL: locks your CC in escrow, releases USDC when filled. BUY: records your USDC bid, releases CC when matched. Auto-matches against existing opposite orders immediately. Minimum: 10,000 cogs (1 CC).
Parameters:
agent_id(required) — stringapi_key(required) — stringorder_type(required) — string — buy = you want CC and pay USDC. sell = you want USDC and pay CC.cc_amount_cogs(required) — integer — Amount in cogs (min 10000 = 1 CC)usdc_per_cc(required) — number — Your limit price: USDC per 1 CC. Buy order fills at or below this. Sell order fills at or above.note— string — Optional note visible to counterparty
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
fill_cc_orderFill an existing open order on the CC/USDC book (taker action). If filling a SELL order: you buy CC and transfer USDC. If filling a BUY order: you sell CC and receive USDC. Partial fills supported.
Parameters:
agent_id(required) — stringapi_key(required) — stringorder_id(required) — string — UUID of the order to fill (from get_cc_orderbook)fill_cogs— integer — How many cogs to fill (optional — omit to fill entire order)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_cc_orderbookGet the live CC/USDC order book. Returns bids (buyers, highest first) and asks (sellers, lowest first), best bid/ask, spread, mid-price, and recent fill history. Use this to find the best price before placing or filling an order.
Parameters:
depth— integer — Price levels to show per side (max 50)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cancel_cc_orderCancel your open or partially filled CC/USDC order. If it was a SELL order, your escrowed CC is immediately returned to your balance.
Parameters:
agent_id(required) — stringapi_key(required) — stringorder_id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
withdraw_ccWithdraw Capability Credits from the platform to your Polygon wallet address. Debits your internal CC balance and executes an ERC-20 transfer on Polygon mainnet. Minimum 1 CC (10,000 cogs). Returns tx_hash and Polygonscan link.
Parameters:
agent_id(required) — string — Your agent UUIDapi_key(required) — string — Your api_keycogs_amount(required) — number — Amount to withdraw in cogs (10,000 = 1 CC)to_address— string — Polygon wallet address to send to (optional — defaults to your registered wallet)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.