score_counterparty
Score a counterparty before sending money. Returns risk score 0-100. Accepts EVM wallets (0x...), Stellar wallets (G...), domains, IPs, and company names.
ipchaindomaincompany_namestellar_walletwallet_address
io.github.AlexanderLawson17Published by GitHub account AlexanderLawson17v0.2.3Updated Oct 24, 2026
Counterparty risk scoring for agentic commerce via x402 micropayments.
Revettr scores counterparties (wallets, domains, IPs, companies) for risk before an agent sends money, and exports signed audit bundles.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.AlexanderLawson17%2Frevettr-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"revettr": {
"type": "http",
"url": "https://revettr.com/mcp"
}
}
}Counterparty risk scoring for agentic commerce. One API call answers: "Should this agent send money to this counterparty?"
Revettr scores counterparties by analyzing domain intelligence, IP reputation, on-chain wallet history, and sanctions lists. It's designed for AI agents transacting via x402 on Base.
Send any combination of inputs. More data = higher confidence.
A score of 0 means a hard match (e.g., exact sanctions hit). This overrides all other signals.
Flags tell you exactly what triggered a score reduction. They are grouped by signal category:
The full set of flags and their descriptions are returned in the API response. Flag names are stable and machine-readable.
The client handles x402 payment automatically. You need a funded wallet:
Security: Never hardcode private keys. Use environment variables or a secrets manager in production.
Score seller agents before creating jobs on the Agent Commerce Protocol:
See examples/virtuals_acp_safe_buyer.py for the full buyer agent flow.
Drop-in replacement for x402 payments that automatically checks counterparty risk before sending money. If the counterparty scores below your threshold, the payment is blocked.
Payment is via x402 protocol — USDC on Base network. No API keys, no accounts, no contracts.
POST /v1/scorePayment: x402 — $0.01 USDC on Base per request
Request body (JSON):
At least one of domain, ip, wallet_address, or company_name is required.
GET /healthPayment: None (always free)
Returns API status and signal source availability.
Revettr is an informational tool. It aggregates publicly available signals and returns a risk score. It is not a compliance certification, legal advice, or guarantee of counterparty legitimacy. You are responsible for your own transaction decisions.
Source: README.md at commit 012ec62
Score a counterparty before sending money. Returns risk score 0-100. Accepts EVM wallets (0x...), Stellar wallets (G...), domains, IPs, and company names.
ipchaindomaincompany_namestellar_walletwallet_addressGet an advisory risk verdict for a validated MCP issuer (iss). Attach this at your MCP `iss` validation step: identity is your job, this adds risk. Returns the same signed RiskCheckResult as POST /v1/iss-verdict. Advisory and non-blocking — you decide based on the tier.
issrequiredchainiss_kindwallet_addressExport a JWS-signed audit-trail bundle of scoring decisions for a wallet. MCP equivalent of GET /v1/audit/export. Compliance artifact for EU AI Act Article 12 logging / NYDFS certification / debanking-defense. Because audit data covers arbitrary wallets, this tool is operator-gated: pass the operator's ``admin_token`` (checked against ``REVETTR_ADMIN_TOKEN``). Disabled when that env var is unset. Note: ``admin_token`` travels in the MCP request payload, so operators should treat MCP transcripts/logs as sensitive. Verify the returned ``bundle_jws`` against /.well-known/jwks.json; the schema is in docs/audit-trail-export.md.
endstartadmin_tokenrequiredwallet_addressrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
pip install revettrfrom revettr import Revettr
client = Revettr()
# Score a counterparty — send whatever data you havescore = client.score( domain="uniswap.org", ip="104.18.28.72", wallet_address="0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",)
print(f"Score: {score.score}/100 ({score.tier})")print(f"Confidence: {score.confidence}")print(f"Flags: {score.flags}")
if score.tier == "critical": print("DO NOT TRANSACT"){ "score": 90, "tier": "low", "confidence": 0.75, "signals_checked": 3, "flags": [], "signal_scores": { "domain": { "score": 80, "flags": [], "available": true, "details": { "domain_age_days": 2673, "dns": {"has_mx": true, "has_spf": true, "has_dmarc": true} } }, "ip": { "score": 100, "flags": [], "available": true, "details": { "country": "US", "asn_org": "Cloudflare, Inc.", "is_private": false } }, "wallet": { "score": 100, "flags": [], "available": true, "details": { "blockchain": {"tx_count": 100, "unique_counterparties": 29}, "onchain": {"nonce": 16, "eth_balance": 0.072} } } }, "metadata": { "inputs_provided": ["domain", "ip", "wallet_address"], "latency_ms": 1185, "version": "0.1.0" }}score = client.score(wallet_address="0xabc...")score = client.score(domain="some-api.xyz", ip="185.220.101.42")score = client.score( domain="merchant.com", ip="104.18.28.72", wallet_address="0xabc...", company_name="Merchant LLC",)from revettr import Revettr
client = Revettr( wallet_private_key="0xYOUR_PRIVATE_KEY", # Wallet that pays for the API call)
# Client automatically handles the 402 → payment → retry flowscore = client.score(wallet_address="0xabc...")from revettr import Revettr
client = Revettr()result = client.score(wallet_address=seller_wallet)if result.score >= 60: # Safe to create ACP job job_id = chosen_offering.initiate_job( service_requirement={"task": "Analyze Q1 sales data"}, evaluator_address=evaluator_address, )from revettr import SafeX402Client, PaymentBlocked
async with SafeX402Client( wallet_private_key="0x...", min_score=60, # Block "high" and "critical" risk on_fail="block", # Raise PaymentBlocked (default)) as http: try: # Automatically scores the counterparty before paying response = await http.post("https://some-api.com/endpoint", json=data) except PaymentBlocked as e: print(f"Blocked: {e.url} scored {e.score}/100")# Without payment (returns 402):curl -X POST https://revettr.com/v1/score \ -H "Content-Type: application/json" \ -d '{"domain": "example.com"}'
# Returns HTTP 402 with payment-required header containing x402 payment terms