How it works
01
Fetch a signed score
Any API key holder can call GET /api/v1/score/:address/signed and receive the score as an EIP-712 signed attestation.
02
Paste it here
Drop the full JSON response below, or open a share link someone sent you. Nothing you paste leaves your browser.
03
Check the signature
The page recovers the signer from the signature and compares it against the official SOCI4L signer address. Valid means the score is exactly what SOCI4L attested.
Verify it yourself, without this page
import { verifyTypedData } from 'viem'
const ok = await verifyTypedData({
address: payload.signer, // compare against attestation.signer at /api/v1
domain: payload.domain,
types: payload.types,
primaryType: payload.primaryType,
message: {
...payload.message,
score: BigInt(payload.message.score),
humanity: BigInt(payload.message.humanity),
issuedAt: BigInt(payload.message.issuedAt),
expiresAt: BigInt(payload.message.expiresAt),
nonce: BigInt(payload.message.nonce),
},
signature: payload.signature,
})The official signer address is published in the attestation.signer field of the machine-readable API descriptor. Full endpoint reference in the API docs.