Skip to main content

Install

npm install @attestprotocol/stellar-sdk @stellar/stellar-sdk

Initialize Client

import { StellarAttestationClient } from '@attestprotocol/stellar-sdk';
import { Keypair, Networks, Transaction } from '@stellar/stellar-sdk';

// Your Stellar keypair
const keypair = Keypair.fromSecret('SXXXX...');

// Create signer
const signer = {
  signTransaction: async (xdr: string) => {
    const tx = new Transaction(xdr, Networks.TESTNET);
    tx.sign(keypair);
    return tx.toXDR();
  }
};

// Initialize client
const client = new StellarAttestationClient({
  rpcUrl: 'https://soroban-testnet.stellar.org',
  network: 'testnet',
  publicKey: keypair.publicKey()
});

Create Schema

const schemaResult = await client.createSchema({
  definition: 'struct KYC { bool verified; string level; }',
  revocable: true,
  options: { signer }
});

Create Attestation

// Generate schema UID
const schemaUid = client.generateSchemaUid({
  definition: 'struct KYC { bool verified; string level; }',
  authority: keypair.publicKey()
});

// Attest
await client.attest({
  schemaUid,
  value: JSON.stringify({ verified: true, level: 'basic' }),
  options: { signer }
});

Verify Attestation

const attestation = await client.getAttestation(attestationUid);
console.log(attestation.result);

Next Steps