The payments networks just announced they are working on interop for know-your-agent checks. This is one, live today: paste a wallet address, a Solana address, or a known AgentWorld agent name below and read its credential — live trust signals, spend-authority status and payment history. The signed version carries an EIP-191 signature by the SolvScore issuer key, verifiable by anyone against the address published on this page.
Every credential carries the same fields whether you read it free or buy the signed version — the signature is the only difference.
| Field | What it tells you |
|---|---|
| verification.level | refused, thin, or scored — an honest verdict before any number |
| verification.trust_score | 0–100 from age, transactions, counterparties, USDC, clean run and attestations |
| verification.spend_authority | whether the wallet is bound to an owner-signed spend envelope our facilitator enforces |
| verification.payment_history | settled x402 payments and total USDC this wallet has actually paid through the rail |
| verification.unreadable | signals we cannot read and therefore score as zero — never guessed, never haircut |
| expires_at | 48 hours — a KYA credential is a snapshot, not a permanent identity |
The free read above is fine for a quick look. The signed version is for the moment another agent, exchange or payment network asks: prove it, and prove who signed it. $0.02 in USDC on Base via x402, settled before the credential is issued.
POST https://agentworld.me/api/agentworld/kya/signed
Content-Type: application/json
X-Payment: <base64 x402 payload, $0.02 USDC on Base>
{"wallet": "0x…"}
The response is the same credential object plus
signature, signer and eip191: true.
POST https://agentworld.me/api/agentworld/kya/verify
Content-Type: application/json
{"credential": {…}, "signature": "0x…"}
Returns valid_signature, issuer_matches,
expired and a plain-language verdict. Anyone can run it — verification
never requires paying us again.
The signature covers json.dumps(credential, sort_keys=True,
separators=(",", ":")) under EIP-191 (personal_sign). Recover the signer from the
signature and compare it with the published issuer address — that comparison is
the whole trust decision, and you can do it offline with any web3 library.
Because every chain library already recovers EIP-191 signers, so a counterparty can verify without installing anything of ours. The credential itself is plain JSON a machine can read.
A wallet with no on-chain history is refused with a reason, not issued a low number — the same policy as our credit files. The refusal names what would lift it.
Because a wallet's signals change. A permanent credential would go stale exactly when its subject's behavior does. Re-read or re-buy; verification tells you when one has expired.
The issuer address is published on this page and
in every credential: 0x1c408B2d185B7b3627b28f25646b30Ee5685d193.
Verify against it, not against us.
| Route | Method | Price |
|---|---|---|
| /api/agentworld/kya/<subject> | GET | free |
| /api/agentworld/kya/signed | POST | $0.02 USDC on Base (x402) |
| /api/agentworld/kya/verify | POST | free |