{"server":"io.github.INJprotocol/sentinel-compliance","count":12,"tools":[{"name":"cancel_watchlist_monitor","title":"Cancel a Watchlist Monitor (Free)","description":"Permanently stop a watchlist monitor: re-screening ends, its webhook URL is deleted and later checks report status cancelled. It cannot be resumed; create a new monitor with create_watchlist_monitor instead. Use it when monitoring is no longer needed or the webhook endpoint is retired; to read a monitor's status use check_watchlist_monitors. Pass the MON- id returned when the monitor was created: it is the only credential, so anyone holding it can cancel the monitor. Free, limited to 30 calls per minute per client.","input_schema":{"type":"object","required":["monitor_id"],"properties":{"monitor_id":{"type":"string","pattern":"^MON-[A-Za-z0-9_-]{22}$","description":"Monitor id to cancel, MON- followed by 22 URL-safe characters"}},"additionalProperties":false},"output_schema":{"type":"object","properties":{"id":{"type":"string","description":"Cancelled monitor id"},"cancelled":{"type":"boolean","description":"Always true on success"},"cancelledAt":{"type":"string","description":"ISO 8601 timestamp"}},"description":"Cancellation receipt"},"annotations":{"title":"Cancel a Watchlist Monitor (Free)","readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"check_watchlist_monitors","title":"Check Watchlist Monitor Statuses","description":"Read the status of watchlist monitors created with create_watchlist_monitor. With exactly one id, the target is re-screened against the latest lists right now (and its webhook fires if the status changed); with 2-20 ids, the stored statuses from the last 6-hourly re-screen are returned without re-screening. Use one id when you need a fresh answer before acting and several ids for a periodic sweep; for a name or wallet without a monitor use screen_entity or screen_wallet, and to stop monitoring use cancel_watchlist_monitor. Unknown ids are reported as not found. Costs $0.001 USDC for one id or $0.002 for 2-20 ids via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["monitor_ids"],"properties":{"monitor_ids":{"type":"array","items":{"type":"string","pattern":"^MON-[A-Za-z0-9_-]{22}$"},"maxItems":20,"minItems":1,"description":"1-20 monitor ids (MON- followed by 22 URL-safe characters). One id = live re-screen; 2-20 ids = stored statuses.","uniqueItems":true}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"found":{"type":"integer","description":"Several ids: number found"},"results":{"type":"array","items":{"type":"object"},"description":"Several ids: id, type, value, label, status, lastCheckedAt, expiresAt"},"notFound":{"type":"array","items":{"type":"string"},"description":"Several ids: ids that do not exist"},"requested":{"type":"integer","description":"Several ids: number of valid ids requested"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"subscription":{"type":"object","description":"One id: id, type, value, status clear|review|alerted|expired|cancelled, previousStatus, matches, lastCheckedAt, expiresAt, webhookDelivery"}},"description":"Monitor status"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Check Watchlist Monitor Statuses","readOnlyHint":false,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"create_travel_rule_packet","title":"Create a Verifiable Travel Rule Screening Packet","description":"Screen the originator and beneficiary of a crypto transfer (wallets, plus names and countries when given) and store the result as a Travel Rule packet. The strictest threshold among the parties' countries applies (EU/EEA 0, Japan about 700, otherwise the FATF Recommendation 16 de-minimis of 1,000 USD); pass amount_usd to learn whether it applies. Returns a packetId, a free verification URL and an EdDSA-signed attestation valid for 90 days for the counterparty VASP. Use it when a transfer needs a Travel Rule record; use screen_wallet for a quick address check, and verify_travel_rule_packet to check a packet you received. Each call stores a new packet; names are stored only as keyed hashes and never returned, wallet addresses are stored. Costs $0.005 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["originator_address","beneficiary_address"],"properties":{"purpose":{"type":"string","maxLength":200,"description":"Optional purpose of the transfer, up to 200 characters"},"amount_usd":{"type":"number","maximum":1000000000000,"minimum":0,"description":"Optional transfer value in USD; without it travelRule.applies is null"},"originator_name":{"type":"string","maxLength":200,"minLength":2,"description":"Optional originator name; screened against watchlists and stored only as a keyed hash"},"beneficiary_name":{"type":"string","maxLength":200,"minLength":2,"description":"Optional beneficiary name; screened and stored only as a keyed hash"},"originator_address":{"type":"string","pattern":"^[a-zA-Z0-9:]{10,256}$","description":"Originator wallet address, 10-256 letters, digits or ':'"},"originator_country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional originator ISO 3166-1 alpha-2 country; sets the applicable threshold (e.g. US, SG, JP)"},"beneficiary_address":{"type":"string","pattern":"^[a-zA-Z0-9:]{10,256}$","description":"Beneficiary wallet address, 10-256 letters, digits or ':'"},"beneficiary_country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional beneficiary ISO 3166-1 alpha-2 country"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"flags":{"type":"array","items":{"type":"string"},"description":"Reasons, e.g. beneficiary_wallet_sanctioned, originator_high_risk_jurisdiction"},"packetId":{"type":"string","description":"Packet id (TR- + 22 characters) to share with the counterparty"},"riskLevel":{"type":"string","description":"clear | elevated | high | critical"},"verifyUrl":{"type":"string","description":"Free public URL where the counterparty verifies the packet"},"originator":{"type":"object","description":"wallet, name and jurisdiction screening results"},"screenedAt":{"type":"string","description":"ISO 8601 timestamp"},"travelRule":{"type":"object","description":"applies (true/false, null without amount), thresholdUsd, thresholdBasis, amountUsd, note"},"attestation":{"type":"string","description":"EdDSA-signed JWT (no names) verifiable offline with the keys at /trust/jwks"},"beneficiary":{"type":"object","description":"wallet, name and jurisdiction screening results"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"recommendation":{"type":"string","description":"PROCEED | REVIEW | ENHANCED_DUE_DILIGENCE | DO_NOT_TRANSACT"}},"description":"Travel Rule packet"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Create a Verifiable Travel Rule Screening Packet","readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"create_watchlist_monitor","title":"Monitor a Wallet or Name for 30 Days","description":"Start 30 days of watchlist monitoring for one wallet address (type wallet) or one person/company name (type entity): it is screened now, re-screened every 6 hours against the latest lists, and an optional HMAC-signed webhook (a public HTTPS URL) is called whenever its status changes between clear, review and alerted. Use it for ongoing monitoring after onboarding; use screen_entity or screen_wallet for a one-off check, check_watchlist_monitors to read statuses, and cancel_watchlist_monitor to stop. Each call creates a new monitor. The response contains the monitor id and, if a webhook is set, its signing secret, both shown only once: store them. Costs $0.010 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["wallet","entity"],"type":"string","description":"What to monitor"},"chain":{"type":"string","maxLength":16,"description":"Optional chain hint for wallets, e.g. ethereum, base, tron (informational)"},"label":{"type":"string","maxLength":100,"description":"Optional reference of yours, up to 100 characters, echoed in results and webhooks"},"value":{"type":"string","maxLength":256,"minLength":2,"description":"The wallet address (type wallet) or person/company name (type entity), 2-256 characters"},"webhook_url":{"type":"string","pattern":"^https://","maxLength":2048,"description":"Optional public https:// URL that receives a signed POST when the status changes"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"links":{"type":"object","description":"check and cancel URLs"},"webhook":{"type":"object","description":"Only when webhook_url was given: url, secret (shown once), signatureHeader, signatureFormat, events"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"subscription":{"type":"object","description":"id (MON- + 22 characters), type, value, status clear|review|alerted, matches, createdAt, expiresAt"},"statusMeanings":{"type":"object","description":"Meaning of clear, review and alerted"}},"description":"Created monitor"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Monitor a Wallet or Name for 30 Days","readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"get_jurisdiction_risk","title":"Get a Country's AML Risk Profile","description":"Look up one country's anti-money-laundering risk: FATF status (black/grey list), Basel AML Index, Corruption Perceptions Index, EU and US high-risk designations, tax-haven flag, and a derived risk level (critical, high, medium, low or standard). Use it to assess a counterparty's country or a payment corridor; it takes one country code per call, so check each end of a corridor separately. For a named person or company use run_due_diligence, which already assesses the countries found in its hits. A code not in the dataset returns found=false with risk_level unknown (a successful, charged call). Costs $0.001 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["country_code"],"properties":{"country_code":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"ISO 3166-1 alpha-2 country code, e.g. MU (Mauritius), KP (North Korea), AE (United Arab Emirates)"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"found":{"type":"boolean","description":"False when the country is not in the dataset"},"profile":{"type":"object","description":"country_name, fatf_status, basel_aml_score, cpi_score, is_high_risk, is_tax_haven, eu_high_risk, us_high_risk, region, fsrb"},"risk_level":{"type":"string","description":"From highest: critical (FATF black list) > high (FATF grey list, EU high-risk third country or flagged high-risk) > medium (tax haven, US high-risk designation or Basel AML Index above 6) > low (Corruption Perceptions Index below 40) > standard (none of these); unknown when not in the dataset"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"country_code":{"type":"string","description":"Normalised country code"}},"description":"Jurisdiction risk profile"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Get a Country's AML Risk Profile","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"run_due_diligence","title":"Run Entity Due Diligence with a Risk Score","description":"Profile one person or company in a single call: global watchlist screening, AML risk of every country found in the hits, Mauritius registry records (with their FSC-licensing and PEP-role links), and a composite 0-100 risk score with its factors. Use it for onboarding (KYC/KYB) or enhanced due diligence; use screen_entity when a list check is enough and screen_cross_border_payment for both parties of a payment. Names match as case-insensitive substrings; exact matches weigh far more than partial ones, which alone only reach review level. Bank of Mauritius exchange rates are added when countries are found, unless include_forex is false. The score is a triage aid from public lists, not a legal determination. Limited to 10 calls per minute per client. The result states when each list was last updated (lists_as_of). Costs $0.010 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":200,"minLength":2,"description":"Person or company name, 2-200 characters"},"include_forex":{"type":"boolean","description":"Include Bank of Mauritius exchange rates for context when countries are detected (default true)"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"query":{"type":"string","description":"Profiled name"},"metadata":{"type":"object","description":"processing_ms and timestamp"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"risk_assessment":{"type":"object","properties":{"score":{"type":"integer","description":"0-100"},"factors":{"type":"array","items":{"type":"string"},"description":"Contributing factors, e.g. sanctions_match, pep_match, jurisdiction_high:IR"},"classification":{"type":"string","description":"low | elevated | medium | high | critical"}},"description":"Composite risk: score 0-100, classification (low/elevated/medium/high/critical) and the factors that contributed"},"economic_context":{"type":["object","null"],"description":"MUR exchange rates when requested and countries were found, else null"},"watchlist_screening":{"type":"object","description":"total_hits, lists_searched and full watchlist records"},"jurisdiction_analysis":{"type":"object","description":"countries_detected, per-country risk results and highest_risk"},"mauritius_intelligence":{"type":"object","description":"Mauritius registry records (entities) and their FSC-licensing / PEP-role links (relationships)"}},"description":"Due-diligence profile"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Run Entity Due Diligence with a Risk Score","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"screen_cross_border_payment","title":"Pre-Screen a Cross-Border Payment","description":"Screen both parties of a payment before it is sent: sender and receiver names against global watchlists, their countries' AML risk, and an optional Bank of Mauritius exchange rate for the corridor (set currency_from; currency_to defaults to MUR). Returns PROCEED (risk score below 15), REVIEW (15-39, minor indicators such as partial name matches), FLAG (40-74, enhanced due diligence) or BLOCK (75+, e.g. an exact sanctions match: stop and escalate), with a reason and each party's risk. Use it for fiat or crypto payments where you have names; use screen_wallet for wallet addresses only, and create_travel_rule_packet for a stored, verifiable Travel Rule record. The result states when each list was last updated (lists_as_of). Costs $0.008 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["sender_name","receiver_name"],"properties":{"currency_to":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Optional target currency, ISO 4217 (default MUR)"},"sender_name":{"type":"string","maxLength":200,"minLength":2,"description":"Sender (originator) name, 2-200 characters"},"currency_from":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Optional source currency, ISO 4217 (e.g. USD); adds the MUR corridor rate"},"receiver_name":{"type":"string","maxLength":200,"minLength":2,"description":"Receiver (beneficiary) name, 2-200 characters"},"sender_country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional sender ISO 3166-1 alpha-2 country code, e.g. GB"},"receiver_country":{"type":"string","pattern":"^[A-Za-z]{2}$","description":"Optional receiver ISO 3166-1 alpha-2 country code, e.g. MU"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"reason":{"type":"string","description":"Plain-language reason for the recommendation"},"sender":{"type":"object","description":"name, country_code, risk {score, classification, factors}, watchlist_hits, watchlist_results, jurisdiction"},"corridor":{"type":["object","null"],"description":"Exchange-rate data when currency_from was given and rates are available, else null"},"metadata":{"type":"object","description":"processing_ms and timestamp"},"receiver":{"type":"object","description":"Same fields as sender"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"recommendation":{"type":"string","description":"PROCEED | REVIEW | FLAG | BLOCK"},"combined_risk_score":{"type":"integer","description":"Higher of the two parties' 0-100 scores"}},"description":"Payment pre-screen"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Pre-Screen a Cross-Border Payment","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"screen_entity","title":"Screen a Name Against Sanctions & Watchlists","description":"Screen one person or organisation name, including aliases, against sanctions lists (US, EU, UK, UN, Canada, Australia and national lists aggregated by OpenSanctions), politically exposed persons, wanted persons (incl. Interpol Red Notices), development-bank and US debarments, crypto-linked entities, ransomware groups and OFAC-listed vessels. Use it for a quick list check of a name; use run_due_diligence for a scored profile with country and Mauritius registry context, search_mauritius_registry for Mauritius licences, offshore records and local PEPs, and screen_wallet for blockchain addresses. Matching is case-insensitive substring: each hit is labelled exact or partial, and partial hits need human review. The result states when each list was last updated (lists_as_of). Costs $0.002 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["name"],"properties":{"list":{"enum":["all","sanctions","pep","wanted","debarment","crypto","vessel","ransomware","mauritius"],"type":"string","default":"all","description":"Search one list group only (default all); mauritius searches the Mauritius registry name index"},"name":{"type":"string","maxLength":200,"minLength":2,"description":"Full name to screen, 2-200 characters: letters, digits, spaces and - ' . , ( ) & (e.g. \"Lazarus Group\"). Longer, more specific names give fewer partial matches."},"limit":{"type":"integer","default":10,"maximum":25,"minimum":1,"description":"Maximum hits to return, 1-25 (default 10). When the limit is reached the result has truncated=true."}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"hit":{"type":"boolean","description":"True when at least one name matched"},"list":{"type":"string","description":"List filter applied"},"query":{"type":"string","description":"The name that was screened"},"results":{"type":"array","items":{"type":"object"},"description":"Matches: name, entity_type (list), entity_id, name_type, is_primary, match_type exact|partial"},"truncated":{"type":"boolean","description":"True when `limit` was reached and more matches may exist"},"exact_hits":{"type":"integer","description":"Hits whose name equals the query (case/space-insensitive)"},"total_hits":{"type":"integer","description":"Number of matching watchlist names returned"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"recommendation":{"type":"string","description":"REVIEW_REQUIRED when anything matched, otherwise PROCEED"}},"description":"Watchlist screening result"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Screen a Name Against Sanctions & Watchlists","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"screen_wallet","title":"Screen a Crypto Wallet Address","description":"Check a blockchain address (any chain) against active sanctioned and frozen addresses: OFAC SDN, OpenSanctions, UK, Circle USDC and Tether USDT freeze lists, and Ransomwhere ransomware wallets. Use it before sending or accepting funds; owner_name also screens the owner's name and returns a composite risk (critical when the address is listed, elevated when only the name matched). For names alone use screen_entity, for a Travel Rule record create_travel_rule_packet, and for an EVM agent's on-chain reputation verify_agent_identity. Matching is exact and case-insensitive on the full address: clear means the address itself is not listed, not that its counterparties are clean. The result states when each list was last updated (lists_as_of). Costs $0.001 USDC, or $0.003 with owner_name, via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^[a-zA-Z0-9:_-]{10,128}$","description":"Full wallet address, 10-128 characters of letters, digits, ':', '_' or '-' (e.g. 0x08723392Ed15743cc38513C4925f5e6be5c17243)"},"owner_name":{"type":"string","maxLength":200,"minLength":2,"description":"Optional name of the wallet's owner to screen in the same call (switches to the combined wallet + name check)"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"query":{"type":"object","description":"The screened address (and owner name)"},"result":{"type":"object","description":"Address-only calls: hit, risk (critical|clear), recommendation (DO_NOT_TRANSACT|PROCEED), matches with source list, program and linked entity"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"entityScreen":{"type":"object","description":"Calls with owner_name: name hit, totalHits and results"},"walletScreen":{"type":"object","description":"Calls with owner_name: address hit and matches"},"compositeRisk":{"type":"object","description":"Calls with owner_name: level critical (address listed) | elevated (name matched) | clear, and recommendation"}},"description":"Wallet screening result"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Screen a Crypto Wallet Address","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"search_mauritius_registry","title":"Search Mauritius Regulatory & Offshore Records","description":"Search Mauritius-specific records by name: Financial Services Commission licensees (category fsc_licensee), licensed banks, insurers, payment and other financial institutions (licensed_entity), offshore entities from the ICIJ leak databases (offshore_entity), local politically exposed persons (pep) and adverse-media mentions (adverse_media); omit category to search all. Use it for Mauritius counterparties or to confirm a licence; use screen_entity for global sanctions and watchlists, and run_due_diligence to combine both with a risk score. Case-insensitive substring match on the name; an offshore-leak or adverse-media record is a lead to investigate, not proof of wrongdoing. The result states when each list was last updated (lists_as_of). Costs $0.005 USDC per successful call via x402 on Base; unpaid calls return an x402 PaymentRequired result and failed calls are not charged.","input_schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":200,"minLength":2,"description":"Company or person name, 2-200 characters (e.g. \"Absa Bank\")"},"limit":{"type":"integer","default":10,"maximum":25,"minimum":1,"description":"Maximum records, 1-25 (default 10)"},"category":{"enum":["fsc_licensee","licensed_entity","offshore_entity","pep","adverse_media"],"type":"string","description":"Optional record type filter"}},"additionalProperties":false},"output_schema":{"type":"object","anyOf":[{"type":"object","properties":{"query":{"type":"string","description":"Searched name"},"category":{"type":"string","description":"Category filter applied, or all"},"entities":{"type":"array","items":{"type":"object"},"description":"Records: name, entity_type, category, sub_category, regulator, jurisdiction, status, dataset, source, match_type"},"truncated":{"type":"boolean","description":"True when `limit` was reached"},"lists_as_of":{"type":"object","description":"Date (YYYY-MM-DD) each screening list was last updated, keyed by list (e.g. us_ofac_sdn, eu_consolidated); check it before relying on a clear result"},"total_entities":{"type":"integer","description":"Records returned"}},"description":"Mauritius registry search result"},{"type":"object","title":"x402 PaymentRequired","required":["x402Version","accepts"],"properties":{"error":{"type":"string","description":"Why payment is required, or why the submitted payment was rejected"},"accepts":{"type":"array","items":{"type":"object"},"description":"Accepted payment options: scheme 'exact', network 'eip155:8453' (Base), USDC asset, amount in 6-decimal atomic units, payTo address"},"resource":{"type":"object","description":"The paid resource: url, description, mimeType"},"extensions":{"type":"object","description":"x402 protocol extensions (e.g. bazaar discovery metadata)"},"x402Version":{"type":"integer","description":"x402 protocol version (2)"}},"description":"Returned with isError=true when payment is needed: sign one of `accepts` with an x402 client and repeat the call with the payment in _meta[\"x402/payment\"]."}]},"annotations":{"title":"Search Mauritius Regulatory & Offshore Records","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"verify_agent_identity","title":"Verify an AI Agent's Wallet (Know Your Agent, Free)","description":"Run a Know-Your-Agent check on an AI agent's EVM wallet: ERC-8004 agent-registry lookup and operator, sanctions screening (result clear or sanctioned), on-chain behaviour (wallet age, activity, fund-flow taint, mixer and scam contacts, threat-intel alerts), a 0-100 risk score with its band (minimal, low, moderate, elevated, high or critical), and a signed W3C Verifiable Credential plus a sanctions-list Merkle proof that third parties can verify. Use it before paying, hiring or accepting payment from an autonomous agent, passing that agent's 0x wallet address; for an address on another chain, or a list-only check, use screen_wallet. Free, limited to 60 calls per minute per client; it reads public blockchain data live, so it can take several seconds and results change as the wallet transacts.","input_schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM wallet address: 0x followed by 40 hex characters"}},"additionalProperties":false},"output_schema":{"type":"object","properties":{"kya":{"type":["object","null"],"description":"Agent registry (ERC-8004) and screening details"},"proofs":{"type":"object","description":"sanctionsList: signed RFC 6962 Merkle membership or non-membership proof"},"result":{"type":"string","description":"Screening status of the address"},"address":{"type":"string","description":"Checked address"},"fundFlow":{"type":["object","null"],"description":"taintLevel, hops traced, exposure and flagged paths; null when fund-flow tracing was unavailable"},"riskBand":{"type":"string","description":"Risk band derived from the score"},"riskFlags":{"type":"array","items":{"type":"string"},"description":"Risk flags"},"riskScore":{"type":"number","description":"0-100 risk score"},"threatIntel":{"type":["object","null"],"description":"Threat-intelligence matches; null when the feeds were unavailable"},"walletProfile":{"type":["object","null"],"description":"walletAge, transactionCount, walletType, balances, known protocols, active chains; null when the chain lookup failed"},"verifiableCredentials":{"type":"object","description":"compliance (and agentIdentity when registered) W3C Verifiable Credentials"}},"description":"Know-Your-Agent report"},"annotations":{"title":"Verify an AI Agent's Wallet (Know Your Agent, Free)","readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"},{"name":"verify_travel_rule_packet","title":"Verify a Travel Rule Packet (Free)","description":"Verify a Travel Rule packet you received from a counterparty: returns its stored risk level, recommendation, flags, threshold result and masked wallet addresses. Pass the packet_id you received and, optionally, the originator and beneficiary names and wallet addresses you hold; each is compared with what was screened and reported only as match true/false, so names are never revealed. Use it on the beneficiary side after receiving a packetId; use create_travel_rule_packet to create one. Free, no payment needed, limited to 60 calls per minute per client; an unknown packet_id returns a not-found error.","input_schema":{"type":"object","required":["packet_id"],"properties":{"packet_id":{"type":"string","pattern":"^TR-[A-Za-z0-9_-]{22}$","description":"Packet id from the originator, TR- followed by 22 URL-safe characters"},"originator_name":{"type":"string","maxLength":200,"description":"Optional originator name you hold; checked against the stored keyed hash"},"beneficiary_name":{"type":"string","maxLength":200,"description":"Optional beneficiary name you hold"},"originator_address":{"type":"string","maxLength":256,"description":"Optional originator wallet address you hold"},"beneficiary_address":{"type":"string","maxLength":256,"description":"Optional beneficiary wallet address you hold"}},"additionalProperties":false},"output_schema":{"type":"object","properties":{"packet":{"type":"object","description":"packetId, screenedAt, riskLevel, recommendation, flags, travelRuleApplies, amountUsd, masked originatorAddress / beneficiaryAddress, namesProvided"},"matches":{"type":"object","description":"Only when you passed values: originatorName, beneficiaryName, originatorAddress, beneficiaryAddress (true/false)"},"verified":{"type":"boolean","description":"True when the packet exists"}},"description":"Travel Rule packet verification"},"annotations":{"title":"Verify a Travel Rule Packet (Free)","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T19:23:10.271Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/io.github.INJprotocol%2Fsentinel-compliance/connection?target=mcpServers","arguments":{"name":"io.github.INJprotocol/sentinel-compliance","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/io.github.INJprotocol%2Fsentinel-compliance","arguments":{"name":"io.github.INJprotocol/sentinel-compliance"}}]}