Attestra

Attestations

Claims with an issuer, a lifecycle and a proof.

An attestation is a claim by an attester about a subject, shaped by a schema. It can expire, be revoked now or on a schedule, become a credential, and be proven final with a light client proof.

attest.ts
const { data } = await client.createAttestation({
  schemaUid,
  subject: 'eip155:8453:0x4b8a...',   // or a NEAR account
  data: encoder.encode({ name: 'Bob', level: 3, verified: true }),
  expirationTime: Math.floor(Date.now() / 1000) + 365 * 86400,
});

await client.isValid(data.attestationUid);              // { valid: true }
await client.scheduleRevocation(data.attestationUid, revokeAt);
await client.mintCredential(data.attestationUid);       // NEP-171, burns on revoke

Subjects on any chain

A NEAR account or a CAIP-10 id on Ethereum, Base, Solana and more. Link wallets to NEAR accounts by their own signatures.

Pending until resolved

With a resolver, an attestation waits while the resolver decides across contracts; a refusal rolls it back with a storage refund.

Delegates and multisigs

Authorities let employees, bots and agents attest within a scope and expiry, or require k of n members to approve.

Signed off chain, submitted by anyone

NEP-413 requests with a deadline and a one-time nonce let a relayer pay the gas for the issuer.

Expiry and scheduled revocation

The contract computes both on every read; the keeper records them as events for indexers.

Credentials

Mint a non-transferable NEP-171 token to the subject; it burns when the attestation is revoked.