Revettr Mcp

io.github.AlexanderLawson17Published by GitHub account AlexanderLawson17v0.2.3Updated Oct 24, 2026

Counterparty risk scoring for agentic commerce via x402 micropayments.

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringBusiness & Commerce

Overview

AI-generated overview

Revettr scores counterparties (wallets, domains, IPs, companies) for risk before an agent sends money, and exports signed audit bundles.

What you can do
Score a counterparty from EVM or Stellar wallets, domains, IPs or company names and get a 0-100 risk score, tier, confidence and flags, with sanctions screening included in the signals checked. Get an advisory, non-blocking risk verdict for a validated MCP issuer identity. Export a JWS-signed audit-trail bundle of scoring decisions for a wallet, gated on an operator credential.
When to use it
Use it when an agent is about to pay or transact with an unknown counterparty and you want a quick risk signal, or when you need a signed record of scoring decisions for compliance purposes.
Requirements
Remote endpoint or the revettr PyPI package over stdio. Each score request costs $0.01 USDC on Base via x402 micropayments, so a funded wallet is needed; the SDK accepts a wallet private key for automatic payment. No API keys or accounts.
Before you install
Requests cost real USDC per call. The SDK can take a wallet private key to pay automatically; keep it out of code and use environment variables or a secrets manager. Scores are informational, not a compliance certification or guarantee, and you remain responsible for transaction decisions. The audit export is operator-gated and covers arbitrary wallets.

Installation

In SourceWeft

  1. Open Revettr Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

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.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "revettr": {
      "type": "http",
      "url": "https://revettr.com/mcp"
    }
  }
}

README

Revettr

[Glama MCP server]

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.

Install

bash
pip install revettr

Quick Start

python
from 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")

What Gets Scored

Send any combination of inputs. More data = higher confidence.

InputSignal GroupWhat It Checks
domainDomain IntelligenceWHOIS age, DNS config (MX, SPF, DMARC), SSL certificate
ipIP IntelligenceGeolocation, VPN/proxy/Tor detection, datacenter vs residential
wallet_addressWallet AnalysisTransaction count, wallet age, counterparty diversity, on-chain behavior
company_nameSanctions ScreeningOFAC SDN, EU consolidated, UN consolidated sanctions lists

Response

json
{  "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 Tiers

ScoreTierMeaning
80-100lowCounterparty appears legitimate
60-79mediumSome signals warrant caution
30-59highMultiple risk indicators present
0-29criticalStrong risk signals — do not transact

A score of 0 means a hard match (e.g., exact sanctions hit). This overrides all other signals.

Risk Flags

Flags tell you exactly what triggered a score reduction. They are grouped by signal category:

CategoryExamplesWhat It Covers
Domaindomain_age_under_*, no_mx_records, ssl_*Domain age, DNS hygiene, SSL validity
IPtor_exit_node, known_vpn, high_risk_country_*Anonymization, geolocation risk
Walletwallet_never_transacted, wallet_age_under_*On-chain history, activity patterns
Sanctionssanctions_exact_match, sanctions_high_confidence_matchOFAC/EU/UN sanctions screening

The full set of flags and their descriptions are returned in the API response. Flag names are stable and machine-readable.

Usage Examples

Wallet only (minimal)

python
score = client.score(wallet_address="0xabc...")

Domain + IP (web service check)

python
score = client.score(domain="some-api.xyz", ip="185.220.101.42")

Full check

python
score = client.score(    domain="merchant.com",    ip="104.18.28.72",    wallet_address="0xabc...",    company_name="Merchant LLC",)

With x402 auto-payment

The client handles x402 payment automatically. You need a funded wallet:

python
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...")

Security: Never hardcode private keys. Use environment variables or a secrets manager in production.

With Virtuals Protocol (ACP)

Score seller agents before creating jobs on the Agent Commerce Protocol:

python
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,    )

See examples/virtuals_acp_safe_buyer.py for the full buyer agent flow.

Safe Agent Payments

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.

python
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")
on_failBehavior
"block" (default)Raise PaymentBlocked exception
"warn"Log warning, proceed with payment
"log"Silently log, proceed with payment

Pricing

TierPriceWhat You Get
Standard$0.01 USDCAll available signals based on inputs provided

Payment is via x402 protocol — USDC on Base network. No API keys, no accounts, no contracts.

API Reference

POST /v1/score

Payment: x402 — $0.01 USDC on Base per request

Request body (JSON):

FieldTypeRequiredDescription
domainstringNoDomain or URL
ipstringNoIPv4 address
wallet_addressstringNoEVM address (0x...)
chainstringNoBlockchain network (default: base)
company_namestringNoName to screen against sanctions
emailstringNoEmail (future — not scored yet)
amountfloatNoTransaction amount in USD (context only)

At least one of domain, ip, wallet_address, or company_name is required.

GET /health

Payment: None (always free)

Returns API status and signal source availability.

Direct HTTP (without SDK)

bash
# 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

Disclaimer

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.

Built by

L Squared Digital Holdings

Source: README.md at commit 012ec62

Tools

3

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.

Parametersipchaindomaincompany_namestellar_walletwallet_address

verify_issuer

Get 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.

Parametersissrequiredchainiss_kindwallet_address

export_audit_bundle

Export 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.

Parametersendstartadmin_tokenrequiredwallet_addressrequired

Version history

1
  1. v0.2.3LatestSep 16, 2026

Score

100% 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.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts