Back to Developers

Attestation Network

Understand how AfterCrypt Protocol verifies release conditions through a decentralized network of attestation nodes.

What is the Attestation Network?

The Attestation Network is a decentralized system of nodes that verify release conditions for vaults. Instead of relying on a single oracle or centralized authority, multiple independent nodes must reach consensus before assets can be released.

How Attestation Works

1

Release Condition Triggered

A beneficiary or automated system submits a release request with supporting evidence (e.g., death certificate hash, government record ID, or oracle data).

2

Node Verification

Attestation nodes independently verify the evidence using multiple data sources including government APIs, oracle networks, and trusted third-party services.

3

Attestation Submission

Each node submits its attestation (verified or rejected) to the on-chain AttestationRouter contract along with a cryptographic proof of verification.

4

Consensus Reached

When 67% of active nodes submit verified attestations, consensus is reached. The vault status changes to "releasable" and beneficiaries can claim their allocated assets.

Supported Attestation Sources

Government Records

Official death certificates and vital records from government databases (where available via API).

Trusted Third Parties

Law firms, notaries, and other trusted entities that can verify identity and events.

Oracle Networks

Integration with Chainlink, Band Protocol, and other decentralized oracle networks.

Time-Based

Automatic attestation when check-in deadlines are missed (inactivity trigger).

Multi-Signature

Designated trustees can submit attestations that require multiple signatures.

Custom Sources

Integration with custom data sources via our attestation provider API.

SDK Integration

Submit Attestation Request

import { AfterCryptProtocol } from '@aftercrypt/sdk';

const sdk = new AfterCryptProtocol({
  chain: 'bsc',
  mode: 'mainnet'
});

// Submit attestation with proof hash
const attestation = await sdk.attestation.submit(
  vaultId,
  'government_record', // source type
  '0xProofHashFromDeathCertificate...'
);

console.log(attestation);
// { id: 'att_123', status: 'pending', source: 'government_record' }

Check Attestation Status

// Get current attestation status
const status = await sdk.attestation.getStatus(vaultId);

console.log(status);
// {
//   pending: 12,
//   verified: 68,
//   rejected: 2,
//   total: 82,
//   consensusThreshold: 67,
//   consensusReached: true,
//   releasable: true
// }

// Get detailed attestation list
const attestations = await sdk.attestation.getAll(vaultId);
attestations.forEach(att => {
  console.log(`Node ${att.nodeId}: ${att.verified ? 'Verified' : 'Rejected'}`);
});

Monitor Attestation Events

// Listen for new attestations
sdk.events.onAttestation(vaultId, (attestation) => {
  console.log(`New attestation from node ${attestation.nodeId}`);
  console.log(`Status: ${attestation.verified ? 'Verified' : 'Rejected'}`);
});

// Listen for consensus events
sdk.events.onConsensusReached(vaultId, (event) => {
  console.log('Consensus reached! Vault is now releasable.');
  console.log(`Total verified: ${event.verifiedCount}`);
  console.log(`Release available at: ${event.releaseTime}`);
});

Security Considerations

Sybil Resistance

Nodes must stake tokens to participate in the network. Malicious behavior results in stake slashing, making attacks economically infeasible.

Data Privacy

Sensitive data is never stored on-chain. Only cryptographic proofs and hashes are submitted, preserving beneficiary privacy.

Dispute Resolution

A governance-controlled dispute period allows challenges before final release. Disputed attestations are reviewed by the DAO.

Audit Trail

Every attestation is permanently recorded on-chain with timestamps and node signatures for full transparency and accountability.

Run an Attestation Node

Earn rewards by participating in the attestation network.