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 claims made by authorities about subjects
- Schemas: Structured templates defining attestation data formats
- Authorities: Entities with permission to issue and manage attestations
- Subjects: Entities about which attestations are made
- Resolvers: Contract interfaces that locate and verify attestation data
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 | Planned | ZK-friendly proofs, privacy-preserving attestations |
Aptos | Move | Research | Resource-oriented attestation model |
The repository contains modular smart contract implementations for multiple blockchain platforms:
contracts/stellar/
βββ authority/ # Authority resolver contract
β βββ src/ # Contract implementation
β βββ Cargo.toml # Dependencies and configuration
βββ protocol/ # Core attestation protocol
βββ src/ # Contract implementation
βββ Cargo.toml # Dependencies and configuration
Key Features:
- Authority registration and verification
- Schema definition and validation
- Attestation issuance and verification
- Optional fee collection through levy system
- Comprehensive event logging
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 attestation infrastructure:
// Example SDK usage
import { AttestClient } from '@attest.so/sdk';
// Initialize client
const client = new AttestClient({
chain: 'stellar',
network: 'testnet'
});
// Create attestation
const attestation = await client.createAttestation({
schema: 'did:attest:identity',
subject: 'G...', // Subject address
claims: { verified: true, level: 2 }
});
Core Functionality:
- Blockchain connection management
- Schema creation and registration
- Attestation lifecycle management
- Cross-chain verification utilities
- Typescript-first development experience
A powerful command-line tool for interacting with the protocol:
# Install CLI
npm install -g @attest.so/cli
# Create a new attestation
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/ # Front-end applications
β βββ docs/ # Documentation website (Next.js)
β βββ explorer/ # Attestation explorer
βββ contracts/ # Smart contract implementations
β βββ stellar/ # Soroban contracts
β βββ solana/ # Anchor contracts
β βββ starknet/ # Cairo contracts
βββ packages/ # SDK, CLI, and utilities
β βββ sdk/ # TypeScript SDK
β βββ cli/ # Command-line interface
β βββ common/ # Shared utilities and types
βββ examples/ # Example applications
βββ 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
- Smart Contracts:
- Rust/Soroban (Stellar)
- Rust/Anchor (Solana)
- Cairo (Starknet)
- Move (Aptos)
- Developer Experience:
- pnpm workspaces
- 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
stellar contract build
# Deploy to Stellar testnet
stellar contract deploy --wasm target/wasm32-unknown-unknown/release/authority.wasm --network testnet --source <source>
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
Rust Analyzer is an official language server for Rust that provides features like code completion, inline type hints, and much more.
-
Install Rust Analyzer in one of the following ways:
- Cursor: Install the βRust Analyzerβ extension through Cursorβs Extensions panel (or equivalent).
- VS Code: Install it from the vsmarketplace or the built-in VS Code Extensions marketplace.
-
Ensure you have a working Rust toolchain installed via rustup. This includes the
cargo
,rustc
, andrustfmt
tools.
With Rust Analyzer installed, add the following configuration to your settings so that it recognizes the additional contract projects (for example, contracts/stellar
and contracts/solana
). Adjust these paths if your project structure differs.
- Open the Preference & Settings (
Cmd + ,
on macOS orCtrl + ,
on Windows/Linux). - Type "rust-analyzer" and press Enter.
- Add or update the
rust-analyzer.linkedProjects
setting in the JSON file with the following snippet:
{
"rust-analyzer.linkedProjects": [
"contracts/stellar/Cargo.toml",
"contracts/solana/Cargo.toml",
"contracts/starknet/Cargo.toml",
"contracts/sui/Cargo.toml"
]
}
Optionally you can create a .vscode/settings.json
file in the root of the project to automatically configure Rust Analyzer for VS Code with the above configuration.
- Product Development Log
- Solana Radar Public Goods Award
- Technical Documentation (Coming Soon)
- API Reference (Coming Soon)
This project is licensed under the MIT License.