Attestations

Types

Attestation (Onchain)

Attestation (Offchain)

Creating Attestations

Creating an Attestation

async function createAttestation(
  attestation: Attestation,
  options?: CreateAttestationOnChainOptions
): Promise<AttestationResult>;

Parameters

CreateAttestationOnChainOptions

Example

const res = await client.createAttestation({
  schemaId: "0x3e",
  data: { name: "a" },
  indexingValue: "xxx",
});

Delegating On-chain Attestation via ECDSA

async function delegateSignAttestation(
  attestation: Attestation,
  options: DelegateSignAttestationOptions
): Promise<AttestationDelegationSignature>;

Parameters

DelegateSignAttestationOptions

Example

const { privateKeyToAccount } = require("viem/accounts");
const delegationPrivateKey = "0x...";
const delegationResult = await delegateSignAttestation(
  { schemaId: "0x3e", data: { name: "a" }, indexingValue: "xxx" },
  {
    chain: EvmChains.baseSepolia,
    delegationAccount: privateKeyToAccount(delegationPrivateKey),
  }
);
const res = await client.createAttestation(delegationResult.attestation, {
  delegationSignature: delegationResult.delegationSignature,
});

Retrieving an Attestation

async function getAttestation(attestationId: string): Promise<Attestation>;

Parameters

Example

const res = await client.getAttestation("0x44");

Revoking Attestations

Revoke an Attestation

async function revokeAttestation(
  attestationId: string,
  options?: RevokeAttestationOptions
): Promise<RevokeAttestationResult>;

Parameters

RevokeAttestationOptions

Example

const res = await client.revokeAttestation("0x44");

Delegating On-chain Revocation via ECDSA

async function delegateSignRevokeAttestation(
  attestationId: string,
  options: {
    chain: EvmChains;
    delegationAccount?: PrivateKeyAccount;
    reason?: string;
  }
): Promise<RevokeDelegationSignature>;

Parameters

DelegateSignRevokeAttestationOptions

Example

const { privateKeyToAccount } = require("viem/accounts");
const delegationPrivateKey = "0x...";
const delegationResult = await delegateSignRevokeAttestation("0x46", {
  chain: EvmChains.baseSepolia,
  reason: "revoke reason",
  delegationAccount: privateKeyToAccount(delegationPrivateKey),
});
const res = await client.revokeAttestation(delegationResult.attestationId, {
  reason: delegationResult.reason,
  delegationSignature: delegationResult.delegationSignature,
});

Last updated

Logo

Copyright Sign 2021-2024