attest.so provides enterprise-grade infrastructure for builders to create "Reputation Authorities" on-chain with verifiable and comprehensive identity proofs. The project supports multiple blockchain platforms, enabling a unified approach to attestations and identity verification.
Our framework addresses critical challenges in Web3:
- Identity Verification: Robust mechanisms for verifying identities across blockchain ecosystems
- Interoperable Trust: Consistent attestation standards across multiple blockchains
- Reputation Management: Infrastructure for building and maintaining on-chain reputation
- Scalable Solutions: Enterprise-ready attestation infrastructure for builders
- Attestations: Verifiable, cryptographically signed claims made by an
Authorityabout aSubject. They are structured according to aSchemaand recorded on-chain. - Schemas: Structured templates that define the format and data types for an attestation. They act as a blueprint, ensuring that attestations are consistent and machine-readable.
- Authorities: Trusted entities with the permission to issue, manage, and revoke attestations. Authorities are registered on-chain, and their integrity is verifiable.
- Subjects: The entities (e.g., users, smart contracts, organizations) about which attestations are made.
- Resolvers: On-chain programs responsible for interpreting and verifying attestations. They provide a standardized interface to locate, decode, and validate attestation data, and can be designed to handle complex logic such as dynamic schema resolution, revocation checks, and integration with off-chain data sources.
attest.so is designed with cross-chain compatibility as a primary goal:
| Blockchain | Contract Language | Status | Key Features |
|---|---|---|---|
| Stellar | Soroban (Rust) | Active | Fee management, levy collection, verifiable authorities |
| Solana | Anchor (Rust) | Development | High throughput, scalable attestation storage |
| Starknet | Cairo | Development | ZK-friendly proofs, privacy-preserving attestations |
| Sui | Move | Planned | Object-oriented attestation model |
| Aptos | Move | Planned | Resource-oriented attestation model |
The repository contains modular smart contract implementations for multiple blockchain platforms:
Our Stellar implementation, built with Soroban, provides a robust framework for on-chain attestations. It leverages Rust for performance and safety, and is designed to integrate seamlessly with the Stellar ecosystem, including Horizon and the Stellar SDK.
contracts/stellar/
βββ authority/ # Manages and resolves authorities
βββ protocol/ # Core attestation protocol logic
βββ resolvers/ # Schema and attestation resolvers
βββ ... # Other configuration and build files
Key Features:
- Authority Management: Contracts for registering, verifying, and managing attestation authorities.
- Core Protocol: The central logic for creating, revoking, and managing attestations.
- Resolvers: Efficient on-chain logic to resolve schemas and attestations.
- Soroban Integration: Fully leverages Soroban's features for storage, authorization, and events.
- Fee and Levy System: Optional fee collection mechanism for monetizing attestation services.
Implementation details for Solana (Anchor), Starknet (Cairo), and Aptos (Move) with blockchain-specific optimizations.
A TypeScript SDK that provides a unified interface for interacting with our attestation infrastructure across different blockchains.
// Example: Interacting with Stellar contracts via the SDK
import { AttestClient } from '@attestprotocol/sdk';
import { Keypair } from '@stellar/stellar-sdk';
// Initialize client for Stellar
const keypair = Keypair.fromSecret('YOUR_STELLAR_SECRET_KEY');
const client = new AttestClient({
chain: 'stellar',
network: 'testnet',
secretKey: keypair.secret(),
});
// Create an attestation on Stellar
const attestation = await client.attest({
schema: 'did:attest:identity',
subject: 'G...', // Subject's Stellar public key
claims: { verified: true, level: 'premium' },
});Core Functionality:
- Blockchain connection management
- Schema creation and registration
- Attestation lifecycle management
- Cross-chain verification utilities
- TypeScript-first for a better developer experience
A powerful command-line tool for developers and administrators to interact with the protocol directly from the terminal.
# Install CLI
npm install -g @attestprotocol/cli
# Create a new attestation on the Stellar testnet
attest create \
--schema did:attest:identity \
--subject G... \
--chain stellar \
--network testnet \
--claims '{"verified": true}'Comprehensive documentation and example implementations to facilitate integration:
- Interactive API reference
- Integration guides
- Example applications
- Best practices
The repository follows a monorepo structure using pnpm workspaces:
attest.so/
βββ apps/
β βββ docs/
β βββ explorer/
βββ contracts/
β βββ stellar/
β βββ solana/
β βββ starknet/
β βββ sui/
β βββ aptos/
βββ packages/
β βββ sdk/
β βββ stellar-sdk/
β βββ solana-sdk/
β βββ starknet-sdk/
β βββ cli/
β βββ core/
βββ examples/
βββ identity-verification/
βββ reputation-system/
See NAMING.md for detailed information about naming conventions and directory structure standards.
- Frontend: Next.js, React, Tailwind CSS
- SDK/CLI: TypeScript, Node.js, Stellar SDK, Horizon Client
- Smart Contracts:
- Stellar: Rust with Soroban
- Solana: Rust with Anchor
- Starknet: Cairo
- Sui: Move
- Aptos: Move
- Developer Experience:
- pnpm workspaces for monorepo management
- TypeScript
- ESLint/Prettier
- Jest for testing
# Clone the repository
git clone https://github.com/daccred/attest.so.git
cd attest.so
# Install dependencies
pnpm install
# Build all packages
pnpm build# Start the documentation site
pnpm run dev:docs
# Run the SDK tests
pnpm run test:sdk
# Deploy contracts to local development network
pnpm run deploy:local# Build Soroban contracts
cd contracts/stellar
soroban contract build
# Deploy to Stellar testnet
soroban contract deploy \
--wasm target/wasm32-unknown-unknown/release/authority.wasm \
--network testnet \
--source <YOUR_ACCOUNT>Contributions are welcome! Please see our CONTRIBUTING.md for guidelines.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
With Rust Analyzer installed, you can configure it to recognize all our Rust-based contract projects. This is essential for a smooth development experience, providing features like auto-completion and type-checking.
Add the following to your .vscode/settings.json file:
{
"rust-analyzer.linkedProjects": [
"contracts/stellar/Cargo.toml",
"contracts/solana/Cargo.toml"
]
}This configuration ensures that Rust Analyzer can correctly interpret the dependencies and structure of each contract crate within our monorepo.
- Product Development Log
- Technical Documentation (Coming Soon)
- API Reference (Coming Soon)
This project is licensed under the MIT License.
