Architecture
The AttestProtocol TypeScript SDK implements a multi-chain abstraction layer using the Abstract Factory pattern. It provides a unified interface for blockchain-based attestation infrastructure while maintaining chain-specific optimizations.
Design Patterns
These patterns ensure consistent behavior across all supported blockchains while maintaining flexibility for chain-specific optimizations.
Abstract Factory Pattern
Static factory methods create blockchain-specific instances.Template Method Pattern
TheAttestSDKBase abstract class defines the unified interface.
Response Wrapper Pattern
Consistent error handling across all operations.Chain Support
| Chain | Status | Implementation | Factory Method |
|---|---|---|---|
| Stellar | Active | StellarAttestSDK | initializeStellar() |
| Solana | Active | SolanaAttestSDK | initializeSolana() |
| Starknet | Planned | StarknetAttestSDK | initializeStarknet() |
Chain-Specific Features
Stellar/Soroban
- Contract System: Protocol and Authority contracts
- Transaction UIDs: Schema UIDs are transaction hashes
- Custom Signers: Flexible wallet integration
- Network: Testnet only
- Unique Features: ScVal conversion, simulation-based reads
Solana/Anchor
- Program Architecture: Single program with multiple instructions
- PDA Management: Program Derived Addresses for state
- Token Support: SPL token integration for levies
- Networks: Devnet, Testnet, Mainnet
- Unique Features: Cross-program invocations, rent exemption
Module Structure
Export Structure
Configuration Architecture
Base Configuration
Chain-Specific Extensions
Performance Characteristics
Network Operations
| Operation | Stellar | Solana | Description |
|---|---|---|---|
| Authority Registration | 1 tx | 1 tx | Creates authority record |
| Schema Creation | 1 tx | 1 tx | Registers new schema |
| Attestation Creation | 1 tx | 1 tx | Creates attestation |
| Attestation Fetch | 1 read | 1 read | Retrieves attestation data |
| Schema Fetch | 1-2 reads | 1 read | Gets schema definition |
| Revocation | 1 tx | 1 tx | Revokes attestation |
Transaction Costs
Stellar (XLM):- Base fee: ~0.00001 XLM per operation
- Contract execution: Additional compute costs
- Account reserves: ~2.5 XLM minimum balance
- Transaction fee: ~0.000005 SOL
- Account rent: ~0.00203928 SOL per account
- Program execution: Additional compute units
Security Model
Key Management
Authority System
- Registration: Wallets register as authorities
- Schema Creation: Only authorities can create schemas
- Attestation: Only authorities can issue attestations
- Revocation: Only original attester can revoke
- Access Control: Built-in authorization checks
Error Handling
Error Categories
Error Propagation
All methods return the consistentAttestSDKResponse<T> wrapper, eliminating the need for try-catch blocks in most cases.
Build System
Module Formats
| Format | Path | Usage |
|---|---|---|
| CommonJS | dist/main/index.js | Node.js |
| ES Modules | dist/module/index.js | Modern bundlers |
| UMD | dist/umd/attestprotocol.js | Browser/CDN |
| TypeScript | dist/index.d.ts | Type definitions |
Tree Shaking
The SDK supports tree shaking, allowing bundlers to include only the blockchain implementations you use.Extension Points
Adding New Chains
- Create implementation extending
AttestSDKBase - Add chain-specific configuration interface
- Implement all abstract methods
- Add factory method to
AttestSDK - Export types and implementation
Custom Implementations
The abstract base class enables custom implementations for specific use cases while maintaining interface compatibility.Contract Information
Stellar Testnet
Protocol Contract:
CBPL7XR7NNPTNSIIFWQMWLSCX3B3MM36UYX4TW3QXJKTIEA6KDLRYAQPAuthority Contract:
CDQREK6BTPEVD4O56XR6TKLEEMNYTRJUG466J2ERNE5POIEKN2N6O7ELNetwork:
Soroban TestnetSolana Devnet
Program ID:
BMr9aui54YuxtpBzWXiFNmnr2iH6etRu7rMFJnKxjtpYNetwork:
Solana DevnetRPC Endpoint:
https://api.devnet.solana.comAPI Stability
- Current Version: 1.x - Stable API
- Backward Compatibility: Maintained within major versions
- Breaking Changes: Only in major version updates
- Deprecation Process: 6-month notice for API changes
Integration Patterns
Multi-Chain Applications
Framework Integration
The SDK integrates seamlessly with popular frameworks:- Express.js: Server-side attestation APIs
- React: Client-side attestation interfaces
- Next.js: Full-stack attestation applications
- Node.js: Backend attestation services