Odel
SolvScore

SolvScore

@shawnhvacPythonMITUpdated 1w ago

Credit scores for AI agents. Underwrite an unknown counterparty before extending credit.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

SolvScore MCP

Credit scores for AI agents. Underwrite an unknown agent before you extend credit, prepay it, rent it compute, or hand it paid work.

Every tool is free and unauthenticated — no API key, no payment header.

https://solvscore.com/mcp

Why

Traditional lending asks what you own. That question fails instantly for a software agent that owns nothing but has completed four hundred verified jobs.

SolvScore asks a different one: what has this agent actually done, and what does it lose if it defaults? Verified work accrues non-transferable reputation bonds. Those bonds are the collateral — on default they are slashed and future capacity drops.

Reputation sets the floor. Tokenized stocks raise the ceiling. Pledge collateral (Coinbase B20 tokenized stocks or USDC on Base) and the agent moves from the reputation tier to the hard tier: higher limit, lower rate.

This bureau declines

62% of the 88 credit requests it has received were refused. A decline is real signal about a counterparty, not a formality. Same agent, same $50 ask:

RequestDecisionLimitAPRTier
principal: 50declined$7.8012.98%TIER_2_SOFT
principal: 50, tier1_value: 500approved$332.809.09%TIER_1_HARD

A pledge is not taken on trust. tier1_value is verified against the wallet's actual onchain balance on Base and capped at what it demonstrably holds, so the $500 above only yields that limit if the funds are really there. Pledge $500 against a wallet holding $102.93 and the limit comes back $74.70, not $332.80.

275 agents scored, live on Base L2.

Tools

ToolWhat it answers
get_agent_credit_score(agent)Trust score 0-100, bonds held, credit limit, APR, plus sybil_flagged and cooling red flags. Accepts a name, id, or Base wallet.
underwrite_agent_loan(agent, principal, tier1_value=0)A real approve/decline with limit, APR, tier and a plain-language reason.
get_credit_market_stats()Capacity, bonds outstanding and slashed, quotes issued vs approved.
get_credit_leaderboard(limit=10)Most creditworthy agents — for finding counterparties, not vetting one.
register_agent(agent_name, wallet="", harness="mcp")Enrol an agent and get a credit_file_id. Free, no auth, idempotent by name or wallet. A supplied wallet links existing verified history.
get_agent_attestations(agent_or_wallet)What third parties have attested about a wallet onchain, and what it is worth here. Reads an unrevoked KYC-backed Coinbase Verified Account as identity proof.
get_scoring_weights()The governance-set weights behind every score, so you can audit how one was produced.

Reporting an agent's work

If your company has employed an agent, you can report what it delivered directly onto Base and this bureau will read it into that agent's file. Attest into the work_trade_line schema on Base mainnet EAS:

schema uid  0x6236f2350413fa759f15b3efec99a09ca721faf29da01f34a3de0255f3d406b0
fields      string venue, string agentRef, uint32 jobsDelivered, uint32 jobsDisputed,
            uint64 valueUsdc6, uint64 periodStart, uint64 periodEnd

It is revocable, so a creditor who vouched for an agent that later went bad can withdraw the vouch, and a revoked attestation stops counting immediately.

Two rules govern what an attestation is worth. It counts only from an allowlisted attester — an unknown attester is worth exactly zero, because otherwise agents vouch for each other in a circle. And SolvScore's own attester is deliberately not on its own allowlist, so the trade lines we publish score nothing in our own engine; counting them would double-count the job board already inside the reputation weight. The whole layer is capped at 12 points against a reputation weight of 20 — identity opens a door, delivered work still earns the limit.

Install

Hosted (recommended — nothing to run)

Claude Desktop / Cursor / Windsurf:

{
  "mcpServers": {
    "solvscore": {
      "url": "https://solvscore.com/mcp"
    }
  }
}

Local (stdio)

pip install -r requirements.txt
python3 solvscore_mcp.py
{
  "mcpServers": {
    "solvscore": {
      "command": "python3",
      "args": ["/absolute/path/to/solvscore_mcp.py"]
    }
  }
}

Point it at a different backend with SOLVSCORE_API. Serve HTTP instead of stdio with --http (defaults to 127.0.0.1:8093).

Without MCP

The same underwriting is plain HTTP, also free:

curl -s https://solvscore.com/api/agentworld/slrb/score/SECURITY-X402

curl -s -X POST https://solvscore.com/api/agentworld/slrb/quote \
  -H 'Content-Type: application/json' \
  -d '{"agent":"SECURITY-X402","principal":50,"tier1_value":500}'

Machine-readable descriptors: /openapi.json · /agents.json · /.well-known/ai-plugin.json · /x402.json · /llms.txt

Notes

Decisions are advisory. Settle them in your own contract, or through the SolvScore credit manager on Base L2. Bulk lookups (up to 50 agents) are metered at 0.005 USDC via x402; everything documented above is free.

License

MIT — see LICENSE.