Complete TypeScript SDK for AffixIO Zero-Knowledge Proof API. Full-featured with all circuits, all endpoints, and production-ready error handling.
- âś… All 10 Circuits - Yes/No, Eligibility, Token Validation, Consent Verification, KYC, Composite, Audit Proof, Proof Aggregation, Quantum-Safe Token, Offline Validation
- âś… All Public Endpoints - Authentication, Organization, API Keys, Data Sources, Tokens, Proofs
- âś… Sandbox Support - Test without API keys
- âś… TypeScript - Full type safety
- âś… Error Handling - Comprehensive error types
- âś… Production Ready - Built for scale
import { AffixIO } from '@affixio/sdk';
const sdk = new AffixIO({
sandbox: true // No API key needed!
});
// Execute Yes/No circuit
const result = await sdk.circuits.yesNo({
userId: 'user123',
rules: ['creditScore >= 650'],
data: { creditScore: 720 }
}, true); // Use sandbox
console.log(result.decision); // true
console.log(result.verified); // true
console.log(result.proof); // Cryptographic proofimport { AffixIO } from '@affixio/sdk';
// API key should be set via environment variable
// Create a .env file with: AFFIX_API_KEY=affix_your_api_key_here
const sdk = new AffixIO({
apiKey: process.env.AFFIX_API_KEY!, // Required for authenticated endpoints
baseURL: process.env.API_BASE_URL || 'https://api.affix-io.com'
});
// Execute circuit
const result = await sdk.circuits.eligibility({
userId: 'user123',
rules: ['purchaseAmount >= 100'],
data: { purchaseAmount: 150 },
consentHash: '0x...'
});
console.log(result.decision);Private loan approval automation and confidential logic processing.
await sdk.circuits.yesNo({
userId: 'user123',
rules: ['creditScore >= 650', 'debtRatio <= 0.4'],
data: { creditScore: 720, debtRatio: 0.35 }
}, true);ZK whitelist check and privacy-preserving eligibility verification.
await sdk.circuits.eligibility({
userId: 'user123',
rules: ['purchaseAmount >= 100'],
data: { purchaseAmount: 150 },
consentHash: '0x...'
}, true);Stateless access control with cryptographically signed, time-limited tokens.
await sdk.circuits.tokenValidation({
tokenSignature: '0x...',
decision: 1,
tokenExpiry: Math.floor(Date.now() / 1000) + 3600,
currentTime: Math.floor(Date.now() / 1000)
}, true);GDPR and CCPA compliant consent verification using zero-knowledge proofs.
await sdk.circuits.consentVerification({
userId: 'user123',
consentHash: '0x...',
consentPurpose: 'analytics',
expiryTime: Math.floor(Date.now() / 1000) + 31536000,
currentTime: Math.floor(Date.now() / 1000)
}, true);Identity verification without data storage.
await sdk.circuits.kyc({
userId: 'user123',
rules: ['age >= 18', 'hasDocument == true'],
data: { age: 25, hasDocument: true }
}, true);Multi-factor ZK logic and complex condition verification.
await sdk.circuits.composite({
userId: 'user123',
rules: ['condition1', 'condition2'],
data: { value1: 100, value2: 200 },
logicOperator: 'AND',
sourceResults: [1, 1]
}, true);Tamper-proof compliance logging with cryptographic audit trails.
await sdk.circuits.auditProof({
decisionValue: 1,
pseudonymisedId: '0x...',
rulesHash: '0x...',
timestamp: new Date().toISOString()
}, true);Recursive ZK proofs and batch verification.
await sdk.circuits.proofAggregation({
proof1Hash: '0x...',
proof2Hash: '0x...',
proof3Hash: '0x...',
source1Result: 1,
source2Result: 1,
source3Result: 1
}, true);Post-quantum algorithms for future-proof API security.
await sdk.circuits.quantumSafeToken({
dilithiumSignature: '0x...',
tokenExpiry: Math.floor(Date.now() / 1000) + 3600,
decision: 1,
currentTime: Math.floor(Date.now() / 1000)
}, true);Air-gapped verification and IoT security offline.
await sdk.circuits.offlineValidation({
userId: 'user123',
eligibilityData: 1,
precomputedProof: '0x...',
timestamp: new Date().toISOString()
}, true);await sdk.client.register({ orgName: 'My Org', sector: 'finance' });
await sdk.client.login({ email: 'user@example.com', password: '...' });
await sdk.client.forgotPassword('user@example.com');await sdk.client.getOrganization();
await sdk.client.updateOrganization({ name: 'New Name' });await sdk.client.getAPIKeys();
await sdk.client.generateAPIKey({ name: 'My Key' });
await sdk.client.generateSandboxAPIKey(); // Free, never billed
await sdk.client.revokeAPIKey('key-id');await sdk.client.generateProof({ userId: 'user123', rules: ['...'] });
await sdk.client.verifyProof({ proof: '0x...', publicInputs: {...} });await sdk.client.generateToken({
decision: true,
expiration: 3600,
format: 'jwt'
});
await sdk.client.validateToken({ token: '...' });import { SDKError, APIError, CircuitExecutionError } from '@affixio/sdk';
try {
const result = await sdk.circuits.yesNo({...});
} catch (error) {
if (error instanceof CircuitExecutionError) {
console.error('Circuit error:', error.message, error.details);
} else if (error instanceof APIError) {
console.error('API error:', error.statusCode, error.message);
} else if (error instanceof SDKError) {
console.error('SDK error:', error.code, error.message);
}
}// For authenticated endpoints, use environment variables
// Set AFFIX_API_KEY in your .env file (see .env.example)
const sdk = new AffixIO({
apiKey: process.env.AFFIX_API_KEY, // Optional (not needed for sandbox)
baseURL: process.env.API_BASE_URL || 'https://api.affix-io.com',
timeout: 30000, // Request timeout in ms
sandbox: true // Use sandbox endpoints (no API key required)
});import { generateRandomHex, getCurrentTimestamp, getFutureTimestamp } from '@affixio/sdk';
const hash = generateRandomHex(64); // '0x...'
const now = getCurrentTimestamp(); // Unix timestamp
const future = getFutureTimestamp(3600); // 1 hour from nowSee examples/ directory for complete examples:
basic-usage.ts- Sandbox examplesauthenticated-usage.ts- Authenticated examples
MIT
- Documentation: https://www.affix-io.com/docs
- Dashboard: https://dashboard.affix-io.com
- API: https://api.affix-io.com