SOCI4L

Attestation checker

Verify a signed score

Every SOCI4L score can be served as an EIP-712 signed attestation. This page checks one: paste the payload and the signature is verified right here in your browser, against the official SOCI4L signer. No trust in this page required; the same check runs with viem or ethers in two lines.

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.