Get a wallet's committed reputation score
Returns the wallet's score snapshot: the 0-100 score, risk level,
per-component breakdown, multi-chain activity totals, attestation counts,
and freshness metadata. Valid wallets always answer 200: cacheStatus
cached means a committed snapshot; otherwise the payload is a
conservative baseline (use Intake to index the wallet, then poll this read
until cacheStatus is cached). A known wallet whose evidence is stale
or uncommitted may automatically start a background refresh, visible as
refreshInProgress: true; a wallet Kyro has never seen does not
auto-index. Costs 1 rate unit.
Authorization
bearerApiKey Optional Kyro API key: Authorization: Bearer kyro_live_.... Anonymous
access (no header) works on every endpoint with a lower rate limit
(20 units/minute per IP vs 120 units/minute per key). Keys are validated
only when the header is present; a malformed, unknown or revoked key is
rejected with 401 INVALID_KEY.
In: header
Path Parameters
EVM wallet address. 0x + 40 hex characters (case-insensitive).
^0x[a-fA-F0-9]{40}$Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/v1/score/0xd8da6bf26964af9d7eed9e03e53415d37aa96045"{ "ok": true, "version": "v1", "data": { "wallet": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", "username": null, "score": 79, "scoreModelVersion": "identity_score_v1", "riskLevel": "Trusted", "badge": "Trusted Wallet Credential", "breakdown": { "globalWalletAge": 20, "crossChainActivity": 4, "arcActivity": 25, "counterpartyDiversity": 15, "verifiedAttestations": 0, "propagatedTrust": 0, "transactionActivity": 15, "riskPenalty": 0 }, "activeChains": [ "Ethereum Mainnet", "Arbitrum", "Polygon", "Arc Testnet" ], "totalTxCount": 5664, "arcTxCount": 211, "globalWalletAgeDays": 3970, "attestations": { "acceptedCount": 0, "uniqueCounterparties": 0 }, "cacheStatus": "cached", "lastIndexedAt": "2026-08-11T13:36:05.979Z", "refreshInProgress": false, "refreshRecommended": false }}