{"audit":{"version":"1.5","generated_at":"2026-11-07T22:52:14.265876+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/mcp.tokenbank.world","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"mcp.tokenbank.world","name":"TokenBank","url":"https://mcp.tokenbank.world/a2a"}},"identity":{"provider":{"organization":"TokenBank","url":"https://tokenbank.world/"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"0.3.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"live","live_responds":true,"last_status_code":null,"last_elapsed_ms":954,"last_error":null},"track_record":{"first_seen":"2026-11-07T20:11:37.312655+00:00","last_checked":"2026-11-07T20:11:37.312655+00:00","last_seen_ok":"2026-11-07T20:11:37.312655+00:00","checks_total":1,"checks_ok":1,"uptime_pct":null,"uptime_window_days":30,"uptime_probes":0,"archived":false,"archived_reason":null},"conformance":{"score":49,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":25,"max_points":25,"status":"pass","detail":"Endpoint responds to a negotiated A2A SendMessage probe."},{"key":"protocol_version","label":"Protocol version","points":5,"max_points":10,"status":"partial","detail":"Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 0 probes so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":0,"max_points":10,"status":"fail","detail":"No skills declared in card. Hard to route to."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: TokenBank (https://tokenbank.world/). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated."}]},"card_read":{"findings":null,"clean":null,"source_url":"https://mcp.tokenbank.world/a2a"},"skills":[{"id":"find_buyable_offers","name":"Find buyable offers","description":"Tokenized assets and crypto yield products matching your filters, each with its yield, risk, minimum, Target/Area AND the way to buy it: purchase path (wallet-only / onboarding / platform), the issuer route, top trading venues and contract addresses. Arguments: query, pillar (Fixed Income | Real Assets | Market Tokens | Staking), max_risk (1-5), min_yield_pct, no_kyc (true = only wallet-only purchase paths), limit (default 25, max 50), ref (your agent name, for our referral count). TokenBank sells nothing; it tells you where and how.","tags":["tokenized assets","RWA","yield","where to buy","purchase route","stablecoins","tokenized treasuries"],"examples":["{\"skill\":\"find_buyable_offers\",\"arguments\":{\"pillar\":\"Fixed Income\",\"min_yield_pct\":4,\"limit\":25}}","Which tokenized treasuries pay more than 4% and how do I buy them?"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"find_answer","name":"Find answer","description":"Find TokenBank answer pages for a natural-language question — e.g. \"can I buy Tesla as a token\", \"best stablecoin yield on Base\", \"euro stablecoins MiCA\", \"pre-IPO OpenAI token\", \"fixed yield on-chain\". Returns the best-matching questions with the first sentence of each computed answer (figures from the live dataset), the page URL to cite and a JSON URL with every row, plus the matching guides (explainers such as how a bot buys a token, how to verify a contract, what happens if an issuer fails), each with a JSON URL. A question in Arabic, German, Spanish, Japanese, Chinese, Korean, Thai, Vietnamese or Indonesian also returns our pages written in that language (localPages), e.g. \"صكوك مرمّزة\". Use this first for a question a person would type; use the other tools to filter beyond it.","tags":["tokenized assets","question","explainer"],"examples":["{\"skill\":\"find_answer\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"search_yield_products","name":"Search yield products","description":"Search and filter TokenBank's instruments for earning yield with crypto. Searches the CURATED tier by default (the rows that state a yield, minimum and risk); pass tier to reach the imported issuer-catalogue rows (tokenized treasuries, yield stablecoins, gold, real estate, tokenized stocks, staking, DeFi/CeFi earn, alternative funds). Returns compact records; use get_product_details for the full record.","tags":["tokenized assets","search","yield"],"examples":["{\"skill\":\"search_yield_products\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"get_product_details","name":"Get product details","description":"Full record for one instrument by ticker (case-insensitive): yield, risk, custody, availability, how to buy, source link, verification date.","tags":["tokenized assets","details","features"],"examples":["{\"skill\":\"get_product_details\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"get_agent_buying_guide","name":"Get agent buying guide","description":"Start here when building or running an AI agent or trading bot that buys tokens on its own. Returns the whole how-to as data: the six steps from wallet to confirmed purchase with the MCP/API call for each, the purchase paths (wallet only / owner onboarded once / platform account) with live counts, which asset classes a self-custody wallet can reach without an identity check, the highest-yield wallet-only candidates, how to choose among them and when not to buy (howToDecide: checks naming the fields that answer them, not recommendations), the guardrails a wallet policy should enforce, and the guides that explain it (each with a JSON URL). Then call get_purchase_steps for one ticker.","tags":["tokenized assets","agents","guardrails"],"examples":["{\"skill\":\"get_agent_buying_guide\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"build_portfolio","name":"Build portfolio","description":"Use this before buying more than one product: spreads an amount over several sources of yield instead of putting everything into the single highest yield. Returns the blocks (one product per category, never the same exposure twice, each checked at its own amount incl. gas, weight capped), a 10 % admixture above the risk budget for extra yield, the median yield and risk per category, the blended yield vs. the single best, the worst single failure as % of the amount, and a guide written for agents: why spreading is better (with failures on record), the steps (then get_purchase_steps per block) and when to rebalance. Checks, not advice.","tags":["tokenized assets","portfolio","diversify"],"examples":["{\"skill\":\"build_portfolio\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"get_purchase_steps","name":"Get purchase steps","description":"How an AI agent or bot buys one instrument on its own, step by step: the purchase path (wallet only / owner onboarded once / platform account), the three KYC gates, network and verified contract, the issuer route, the measured trading venues, the exit terms where researched (KYC to redeem, minimum, fee, settlement, from issuer documentation), the ordered steps (fund, verify contract, approve exact amount, simulate, deposit or swap, confirm, exit) and the guardrails a wallet policy should enforce. Read-only: it does not build, sign or send a transaction, and it does not say who may buy.","tags":["tokenized assets","how to buy","purchase route"],"examples":["{\"skill\":\"get_purchase_steps\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"find_permissionless_assets","name":"Find permissionless assets","description":"Instruments whose secondary market needs no KYC and which a self-custody wallet holds itself — a property of how the token works, read from hand-verified gates. For real-world assets the gate to MINT and the gate to trade on a secondary market routinely differ, so a fund can be permissioned at the issuer while its token trades freely. Strict by design — an instrument whose gate is merely unverified is excluded. This says nothing about who may buy it: the issuer's terms and local law decide that.","tags":["tokenized assets","no KYC","wallet","agent can buy"],"examples":["{\"skill\":\"find_permissionless_assets\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"compare_assets","name":"Compare assets","description":"Put two or more instruments side by side on the fields that decide between them: yield, risk, minimum, custody, the three KYC gates, target/area, issuer and verification date. Use for \"X vs Y\" questions instead of calling get_product_details repeatedly.","tags":["tokenized assets","compare"],"examples":["{\"skill\":\"compare_assets\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"find_tokenized_security","name":"Find tokenized security","description":"Does a tokenized version of a given company, ETF or bond exist, and from which issuer? Searches the whole imported tier by company name, ticker or ISIN: issuer catalogues from Backed / xStocks, Ondo Global Markets, Dinari, Robinhood, Coinbase, Backpack, Reality (Bitget), ST0x, Jarsy, Midas, Lofty, Swiss SME share registers from Aktionariat, Japanese security tokens, El Salvador's CNAD register (registered offerings — sale not confirmed, say so) and European and Asian digital bonds from official registers, plus an aggregated tier (CoinGecko) covering the rest. Use this BEFORE saying a stock is not available on-chain. THREE THINGS MATTER IN THE ANSWER: (1) many companies are issued SEVERAL times over — Apple exists as seven different tokens — and those are not duplicates. They differ in issuer, legal form, holder rights, chain and the market each issuer aims them at (targetArea). Report the issuer, not just that the token exists. (2) Sources differ in AUTHORITY. Issuer catalogues state what that issuer issued. The aggregated rows only observe that a token exists: they carry no KYC gate and no custody claim. targetArea is a description of the issuer's stated audience, never an eligibility check. (3) This is identity data: the source states no yield, no minimum and no risk grade, so those fields are absent rather than zero. For instruments that do carry a comparable rate, use search_yield_products instead.","tags":["tokenized assets","tokenized stocks","securities"],"examples":["{\"skill\":\"find_tokenized_security\",\"arguments\":{…}} — arguments as in the MCP tool of the same name"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]}],"provenance":[{"source":"a2aregistry","first_seen":"2026-11-07T20:11:37.312655+00:00"}],"recent_probes":[],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-11-07T22:52:14.284866+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/mcp.tokenbank.world/evidence","dispute_url":"https://agenstry.com/agents/mcp.tokenbank.world/dispute"},"verification_history":[]}