SDK Reference

The AuditAgent SDK provides a simple TypeScript interface for autonomous API payments.

Installation

npm install @auditagent/sdk

Quick Start

import { AuditAgentClient } from '@auditagent/sdk';

const client = new AuditAgentClient({
  programId: process.env.SOLANA_AGENT_PROGRAM_ID!,
  authoritySecret: process.env.SOLANA_AGENT_AUTHORITY_SECRET!,
  usdcMint: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
  rpcUrl: 'https://api.devnet.solana.com',
  premiumApiBase: 'https://api.example.com',
});

const result = await client.runAudit({ 
  resourcePath: '/api/premium-data' 
});

console.log('Transaction:', result.signature);
console.log('Data:', result.primary);

Configuration

OptionTypeRequiredDescription
programIdstringYesDeployed Solana program ID
authoritySecretstringYesBase58-encoded authority secret
usdcMintstringYesUSDC mint address
rpcUrlstringNoCustom RPC (default: devnet)
premiumApiBasestringYesBase URL for premium APIs

Methods

runAudit(options)

Executes an autonomous payment for a premium API resource.

Parameters

{
  resourcePath: string;       // API endpoint path
  requestInit?: RequestInit;  // Optional fetch options
}

Returns

{
  signature: string;        // Solana transaction signature
  primary: unknown;         // API response data
  followUp?: unknown;       // Follow-up data (if chained)
  tapProof: {
    signature: string;      // Cryptographic proof
    payloadHash: string;    // SHA-256 hash
    issuedAt: number;      // Timestamp
    authority: string;      // Authority pubkey
    version: string;        // TAP version
  };
  fee: {
    microLamports: number;  // Priority fee paid
    computeUnits: number;   // Compute units used
  };
}

Helper Functions

deriveAgentPda(programId: string): string

Derives the agent PDA address for a given program ID.

import { deriveAgentPda } from '@auditagent/sdk';

const pda = deriveAgentPda('YourProgramId...');
console.log('Agent PDA:', pda);

getAgentAta(programId: string, usdcMint: string): string

Gets the Associated Token Account for the agent's USDC wallet.

import { getAgentAta } from '@auditagent/sdk';

const ata = getAgentAta(
  'YourProgramId...',
  '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU'
);

Error Handling

try {
  const result = await client.runAudit({ 
    resourcePath: '/api/data' 
  });
  console.log('Success:', result);
} catch (error) {
  if (error instanceof WrappedFetchError) {
    console.error('Payment failed:', error.message);
  } else {
    console.error('Error:', error);
  }
}

Examples

Basic Usage

const result = await client.runAudit({
  resourcePath: '/api/premium-data'
});

console.log('Paid', result.fee.microLamports, 'μLamports');
console.log('Data:', result.primary);

With Custom Headers

const result = await client.runAudit({
  resourcePath: '/api/data',
  requestInit: {
    headers: {
      'X-Custom-Header': 'value',
    },
  },
});

Need Help?

Check out our GitHub Discussions or open an issue if you run into problems.