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
Starknet support is planned but not yet implemented. Current production support includes Stellar and Solana.
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:
CBPL7XR7NNPTNSIIFWQMWLSCX3B3MM36UYX4TW3QXJKTIEA6KDLRYAQP
Authority Contract:
CDQREK6BTPEVD4O56XR6TKLEEMNYTRJUG466J2ERNE5POIEKN2N6O7EL
Network:
Soroban TestnetSolana Devnet
Program ID:
BMr9aui54YuxtpBzWXiFNmnr2iH6etRu7rMFJnKxjtpY
Network:
Solana DevnetRPC Endpoint:
https://api.devnet.solana.com
API 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