UXUS Agent Services: wallet lookup, entity labels, caller ID

io.github.DcroyaltyPublished by GitHub account Dcroyaltyv1.4.0Updated Oct 24, 2026

Free wallet lookup, ENS, labels, caller ID. Paid x402: search, scrape, XRP yield and lending grades

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingFinanceSecurity & Monitoring

Overview

AI-generated overview

Remote MCP server for crypto wallet screening: address lookup, ENS/Basenames resolution, entity labels, caller ID, plus paid web search and scraping.

What you can do
  • Look up Ethereum, Base and XRPL addresses with chain auto-detection
  • Resolve ENS and Basenames names to addresses and back, with forward verification
  • Attribute an address to a category such as exchange, mixer, scam or sanctioned
  • Decide whether a wallet message should be answered, screened or blocked, with reasons
  • Return payment resources for paid web search, page scraping, and XRP yield or lending risk grades
  • Check service health
When to use it
Useful when an assistant needs to vet crypto addresses or wallets before acting — checking labels, sanctions or scam categories, resolving names, or filtering wallet messages. Also relevant for agents that want pay-per-call web search, scraping or XRP yield and lending risk grades without signing up for accounts.
Requirements
A remote streamable HTTP endpoint at uxus.finance; no accounts, API keys or signup are declared. Paid tools require a funded wallet paying USDC on Base through the x402 protocol. Network access to the service is needed.
Before you install
Several tools are paid per call in USDC on Base, so using them spends real funds from a connected wallet. The search and scrape tools return a payment resource rather than performing the action themselves. Risk verdicts are developer-grade screening from public data, not legal or compliance advice, and scoring fails open to CAUTION when data is unavailable. Free tools send queried addresses to a third-party service.

Installation

In SourceWeft

  1. Open UXUS Agent Services: wallet lookup, entity labels, caller ID 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.Dcroyalty%2Fuxus/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": {
    "uxus-agent-services-wallet-lookup-entity": {
      "type": "http",
      "url": "https://uxus.finance/api/mcp"
    }
  }
}

README

UXUS — Agent Services

Pay-per-call primitives for AI agents, live at uxus.finance. Paid in USDC on Base via the x402 protocol — no accounts, no API keys, no signup. A funded wallet is the whole integration.

Services

EndpointPriceWhat you get
POST /api/llm$0.01LLM completion, 5-model fallback chain
GET /api/scrape$0.01URL → clean markdown/text/html
POST /api/extract$0.01messy text/URL → JSON in your schema
POST /api/embed$0.01text → 1024-dim vectors (jina-embeddings-v3)
GET /api/search$0.01live web search
GET /api/risk/pro$0.02one call, one verdict: PROCEED / CAUTION / BLOCK + summary + reasons
GET /api/risk/live/pro$0.02one-call verdict on a token's owner powers (can it still be paused, upgraded or rugged?) + reasons
GET /api/risk · /api/risk/livefreerisk score + verdict (no reasons/signals)
GET /api/lookupfreeaddress lookup for Ethereum, Base and XRPL, chain auto-detected
GET /api/entityfreeentity attribution — what is this address
GET /api/resolvefreeENS / Basenames, forward + reverse (forward-verified)
GET /api/calleridfreeshould this wallet be answered? (for XMTP/Push)
/api/shield/*freeper-user private wallet blocklist (signature-auth)
GET /api/catalog · /openapi.json · /llms.txt · /.well-known/x402.jsonfreediscovery
POST /api/mcpfreeMCP server (Streamable HTTP) over the free tools

Every risk/verdict response carries a disclaimer: this is developer-grade screening from public data (OFAC SDN list, community scam registries, on-chain reads), not legal or compliance advice.

Data

  • Sanctions come from one place: the OFAC SDN list in bad_addresses (source='ofac'), refreshed daily by /api/cron/refresh-lists (guarded — a 0-address upstream response aborts rather than wiping the table). lib/entity.ts is the only place that joins it. A non-OFAC blocklist hit is category flagged, not sanctioned, and is allowlistable.
  • Scoring fails open: if a data source needed for a verdict is unavailable and there's no list hit, the response is degraded:true / verdict CAUTION, never PROCEED.

Development

bash
npm installnpm run dev        # http://localhost:3000npm run build

Env (Vercel project settings):

varrequiredpurpose
DATABASE_URLyesNeon Postgres
CRON_SECRETyesgates /api/cron/*; Vercel Cron sends it as Authorization: Bearer
OPENROUTER_API_KEYfor /api/llm, /api/extract
JINA_API_KEYfor /api/embed
SERPER_API_KEY / BRAVE_API_KEYoptional/api/search (falls back to DuckDuckGo)
ETHERSCAN_API_KEYoptionalwallet history (falls back to Blockscout)
CDP_API_KEY_ID / CDP_API_KEY_SECRETfor x402 settlement

Scripts: scripts/schema*.mjs (create tables), scripts/ingest*.mjs (manual list load — the scheduled path is lib/refresh-lists.ts + scripts/ingest-entity.mjs), scripts/shield-verify.mjs (live E2E), scripts/fix-sanctions.mjs (one-shot sanctions remediation, already run).

Source: README.md at commit 27b53f9

Tools

9

search_web

Live web search: ranked results plus Google's answer box, knowledge graph, people-also-ask and related searches when the Google-backed provider answers. This is a PAID x402 call: $0.01 USDC on Base at GET /api/search. This tool returns the payment resource to call; it does not run the search. Params: query (string, required); count (integer 1-20, default 10); country/language/page/device (optional).

Parameterspagecountqueryrequireddevicecountrylanguage

scrape_url

Any web page as clean, LLM-ready markdown, text or html. This is a PAID x402 call: $0.01 USDC on Base at GET /api/scrape. This tool returns the payment resource to call; it does not fetch the page. Params: url (absolute http/https URL, required); format (markdown | text | html, default markdown); max_chars (integer, default 40000, max 120000).

Parametersurlrequiredformatmax_chars

yield_grade

A-F risk grade for one way to earn on XRP or RLUSD, from the XRP Yield Desk (xrplhub.io/yield): XRPL AMM pools, Doppler vaults, Firelight stXRP and other Flare FXRP products, RLUSD and XRP DeFi pools, and exchange earn programs. Returns the rate, size, lockup and withdrawal terms, who holds the keys, chain, age, audits, the data source with its timestamp, and every rule that moved the grade. General information, not advice; the products graded pay nothing. This is a PAID x402 call: $0.02 USDC on Base at GET /api/yield/grade. This tool returns the payment resource to call; it does not compute the grade. Find ids for free at https://www.xrplhub.io/api/yield/options. Params: id (option id, required).

Parametersidrequired

lending_grade

A-F risk grade for one XRP Ledger lending vault or loan broker, from on-ledger data only (size, utilization, first-loss cover ratio, late/impaired/defaulted loans, unrealized loss, realized yield), with every rule that moved the grade. Not a credit rating. This is a PAID x402 call: $0.02 USDC on Base at GET /api/lending/grade. This tool returns the payment resource to call; it does not compute the grade. NOT LIVE YET: it goes live when XRPL lending (the LendingProtocol and SingleAssetVault amendments) is enabled on mainnet. Until then this tool returns available:false and GET /api/lending/grade returns 503 with no charge. Params: id (64-hex Vault or LoanBroker ID, required); type (vault | broker, optional).

Parametersidrequiredtype

lookup_wallet

Address lookup for Ethereum and Base 0x addresses and XRPL r-addresses, auto-detected. Params: address (EVM 0x address or XRPL classic r-address, required); chain (optional EVM history hint: base default, or ethereum). Detects EVM vs XRPL from the format. Returns one normalized envelope: { address, chain, chain_detected, exists, risk_score, risk_level, verdict, flags, entity, name }. Free. For a fast first-pass check on a counterparty wallet.

Parameterschainaddressrequired

resolve_name

Bidirectional name <-> address resolution for ENS (name.eth) and Basenames (name.base.eth). Param: q (an ENS/Basename name, an EVM 0x address, or an XRPL r-address, required). Auto-detects direction. Reverse records are forward-verified against the address to stop name spoofing. Returns { query, kind, namespace, chain, resolved, address, name, sources }. XRPL .xrp names are detected but resolved:false (no canonical registry). Free.

Parametersqrequired

check_entity

Entity attribution — what IS this address, not who owns it. Params: address (0x EVM address, required); chain (base default, or ethereum). Returns { address, chain, is_known, label, category }. category is one of sanctioned, mixer, exchange, bridge, dex_router, scam, drainer, phishing, flagged, token_contract, protocol, unknown. "sanctioned" is set only when the address is on the OFAC SDN list (the same source /api/risk uses); a non-OFAC blocklist hit is "flagged". Sourced from OFAC, ScamSniffer, MEW, eth-labels and curated Base/Tornado sets. Never guesses. Free.

Parameterschainaddressrequired

caller_id

Should this wallet be answered? For wallet messaging (XMTP, Push), which has no spam filter. Params: address (0x EVM address, required); chain (base default, or ethereum). Composes entity attribution + risk score + on-chain history + forward-verified name into ANSWER | SCREEN | BLOCK with reasons[] and a confidence flag. BLOCK on sanctioned/drainer/phishing/scam/mixer or risk verdict BLOCK; SCREEN is the default for unknown addresses. Free.

Parameterschainaddressrequired

health

Service health check. No parameters. Returns { ok, service, time, upstream } — confirms the uxus.finance API is reachable. Free.

Takes no parameters.

Version history

3
  1. v1.4.0LatestOct 16, 2026
  2. v1.3.0Oct 16, 2026
  3. v1.2.0Oct 12, 2026

Score

90% 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

    Declare a license in the repository or the registry entry.