io.github.vjshaw/nulucre-wallet-reputation
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Wallet trust scores for AI agents. Stellar, XRPL, EVM 81+ chains. OFAC sanctions. x402 payments.
| Author | io.github.vjshaw |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 158 ms |
| Last measured | 2026-10-26 |
Measured statistics
| Tools measured | 5 |
|---|---|
| Latency, 30-day median (L1) | 158 ms |
| Latency, latest (L1) | 158 ms |
| Safe-call success | 1/1 (100%) |
| 30-day success rate (L2) | 100% |
| Last checked | 2026-10-26 |
| Total checks | 4 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"nulucre-wallet-reputation": {
"url": "https://agents.nulucre.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (5)
nulucre_get_stellar_wallet_scoreread-onlyGet a 0-100 trust score for a Stellar wallet address (G...) from Nulucre, a live Stellar-native wallet reputation oracle. The score is computed from 8 signals pulled directly from the Stellar Horizon API and Stellar Expert — account age, transaction volume, asset diversity, SDEX DEX participation, network trust, claimable balance activity, Soroban contract interactions, and liquidity pool participation, plus a spam detection penalty. No EVM data is used. Every score includes a real-time sanctions screening result against the OFAC SDN, OFAC Non-SDN, EU Financial Sanctions, and UN Security Council Sanctions lists. A wallet matching any of these lists automatically receives a score of 0 and status BLACKLISTED. Use this tool to assess counterparty risk before an agent interacts with or pays a Stellar wallet — for example before executing a payment, approving a swap counterparty, or evaluating a new account. Args: - g_address (string): Stellar wallet address starting with 'G' (56 characters) - signed (boolean): If true, request an ECDSA-P256 signed score for independent verification via Nulucre's public JWKS endpoint (default: false) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: Structured data with schema: { "wallet": string, "network": "stellar:pubnet", "score": number, // 0-100 "status": string, // TRUSTED | VERIFIED | CAUTION | RISKY | BLACKLISTED "breakdown": { "accountAge": { "score": number, "raw": string }, "txVolume": { "score": number, "raw": string }, "assetDiversity": { "score": number, "raw": string }, "dexParticipation": { "score": number, "raw": string }, "networkTrust": { "score": number, "raw": string }, "claimableActivity": { "score": number, "raw": string }, "sorobanUsage": { "score": number, "raw": string }, "liquidityPools": { "score": number, "raw": string }, "spamPenalty": { "score": number, "raw": string }, "sanctionsCheck": { "score": number, "raw": "CLEAR"|"SANCTIONED"|"UNCHECKED", "source": string } }, "dataSource": string, "timestamp": string, "signature"?: string // present only when signed=true } Examples: - Use when: "Is this Stellar wallet safe to pay?" -> g_address="GABC...", signed=false - Use when: "Get a verifiable score I can check independently" -> g_address="GABC...", signed=true - Don't use when: scoring an Ethereum or other EVM address (use nulucre_get_evm_wallet_score instead) Error Handling: - Returns "Error: Invalid Stellar wallet address" if the address format is invalid - Returns a payment-required explanation if the free evaluation quota is exhausted
Parameters:
g_address(required) — string — Stellar wallet address starting with 'G' (56 characters)signed— boolean — If true, requests an ECDSA-P256 cryptographically signed score for independent verification (higher cost endpoint)response_format— string — Output format: 'markdown' for human-readable report or 'json' for machine-readable structured data
Hints: read-only yes · destructive no · idempotent yes · open-world yes
nulucre_get_evm_wallet_scoreread-onlyGet a 0-100 trust score for an EVM wallet address (0x...) from Nulucre, a multi-chain wallet reputation oracle covering 81+ chains. The score is computed from on-chain data including wallet age, transaction volume, DeFi activity, and multi-chain presence, pulled from Etherscan, Moralis, Alchemy, and Ankr. Use this tool to assess counterparty risk before an agent interacts with or pays an EVM wallet on Ethereum, Base, Polygon, Arbitrum, Optimism, or any of the 81+ supported chains. Args: - wallet (string): EVM wallet address starting with '0x' (42 characters) - signed (boolean): If true, request an ECDSA-P256 signed score for independent verification via Nulucre's public JWKS endpoint (default: false) - response_format ('markdown' | 'json'): Output format (default: 'markdown') Returns: For JSON format: Structured data with schema: { "wallet": string, "score": number, // 0-100 "status": string, // TRUSTED | VERIFIED | CAUTION | RISKY | BLACKLISTED "breakdown": { "<signalName>": { "score": number, "raw": string }, ... }, "chains"?: string[], "dataSource": string, "timestamp": string, "signature"?: string // present only when signed=true } Examples: - Use when: "Is this Ethereum wallet trustworthy?" -> wallet="0xabc...", signed=false - Use when: "Get a verifiable score for this 0x address" -> wallet="0xabc...", signed=true - Don't use when: scoring a Stellar G... address (use nulucre_get_stellar_wallet_score instead) Error Handling: - Returns "Error: Invalid EVM wallet address" if the address format is invalid - Returns a payment-required explanation if the free evaluation quota is exhausted
Parameters:
wallet(required) — string — EVM wallet address starting with '0x' (42 characters)signed— boolean — If true, requests an ECDSA-P256 cryptographically signed score for independent verification (higher cost endpoint)response_format— string — Output format: 'markdown' for human-readable report or 'json' for machine-readable structured data
Hints: read-only yes · destructive no · idempotent yes · open-world yes
nulucre_get_solana_wallet_scoreread-onlyGet a 0-100 trust score for a Solana wallet address from Nulucre. Scored using 7 native Solana RPC signals: account age, transaction volume, SOL balance, token diversity, recent activity, program account status, and failed transaction ratio. Includes real-time OFAC/UN/EU sanctions screening. Use before paying or interacting with any Solana wallet. Pay per query via x402 USDC micropayments.
Parameters:
address(required) — string — Solana wallet address (base58, 32-44 characters)signed— boolean — If true, request an ECDSA-P256 signed scoreresponse_format— string — Output format
Hints: read-only yes · destructive no · idempotent yes · open-world yes
nulucre_get_xrpl_wallet_scoreread-onlyGet a 0-100 trust score for an XRPL wallet address (r...) from Nulucre. Scored using 7 XRPL Ledger signals: account age, transaction volume, trustline diversity, DEX participation, network trust, payment activity, and spam detection. Includes real-time OFAC/UN/EU sanctions screening. Use before paying or interacting with any XRPL wallet.
Parameters:
r_address(required) — string — XRPL wallet address starting with r (25-35 characters)signed— boolean — If true, request an ECDSA-P256 signed scoreresponse_format— string — Output format
Hints: read-only yes · destructive no · idempotent yes · open-world yes
nulucre_check_service_statusread-onlyCheck whether the live Nulucre reputation oracle service is online. This is a free endpoint that requires no payment. Use this tool to verify Nulucre is reachable before relying on it for wallet scoring decisions, or for general uptime monitoring. Args: none Returns: Structured data with schema: { "status": string, // "online" if the service is reachable "service": string // service name } Examples: - Use when: "Is Nulucre up?" -> no params needed - Use when: checking service availability before a batch of scoring calls Error Handling: - Returns "Error: ..." with details if the service is unreachable
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.