Sonr is a blockchain ecosystem combining decentralized identity, secure data storage, and multi-chain interoperability. Built on Cosmos SDK v0.50.14, it provides users with self-sovereign identity through W3C DIDs, WebAuthn authentication, and personal data vaultsβall without requiring cryptocurrency for onboarding.
Create your first decentralized identity without owning cryptocurrency:
# Register with WebAuthn (no tokens required!)
snrd auth register --username alice
# Register with automatic vault creation
snrd auth register --username bob --auto-vault
- Cosmos SDK: Native integration with IBC ecosystem
- EVM Compatibility: Ethereum smart contract support
- External Wallets: MetaMask, Keplr, and more
- WebAuthn/Passkeys: Biometric authentication
- Hardware Security Keys: YubiKey, Titan Key support
- Multi-Signature: Multiple verification methods per DID
- IPFS Integration: Distributed file storage
- Encrypted Vaults: Hardware-backed encryption
- Protocol Schemas: Structured data validation
- Cosmos SDK: v0.50.14
- CometBFT: v0.38.17
- IBC: v8.7.0
- Go: 1.24.1 (toolchain 1.24.4)
- WebAssembly: CosmWasm v1.5.8
- Task Queue: Asynq (Redis-based)
- Actor System: Proto.Actor
- Storage: IPFS, LevelDB
- Limited to WebAuthn registration only
- Full cryptographic validation required
- Credential uniqueness enforcement
- Anti-replay protection
- Origin validation
- Challenge-response authentication
- Device binding
- Attestation verification
- Ed25519 (quantum-resistant)
- ECDSA (secp256k1, P-256)
- RSA (2048, 3072, 4096 bits)
- WebAuthn (ES256, RS256)
# Clone the repository
git clone https://github.com/sonr-io/sonr
cd sonr
# Install the binary
make install
# Verify installation
snrd version
# Start single-node testnet (quick iteration)
make localnet
# Start multi-node testnet with Starship
make testnet-start
# Stop testnet
make testnet-stop
# Build snrd blockchain node
make build
# Build Docker image
make docker
# Generate code from proto files
make proto-gen
# Standard localnet (auto-detects best method for your system)
make localnet # Works on Arch Linux, Ubuntu, macOS, etc.
# Docker-based localnet (requires Docker)
make dockernet # Runs in detached mode
# One-time setup for your system (optional)
./scripts/setup_localnet.sh # Installs dependencies and configures environment
# Run all tests
make test-all
# Module-specific tests
make test-did # DID module tests
make test-dwn # DWN module tests
make test-svc # Service module tests
# E2E tests
make ictest-basic # Basic chain functionality
make ictest-ibc # IBC transfers
make ictest-wasm # CosmWasm integration
# Test with coverage
make test-cover
# IPFS for vault operations
make ipfs-up # Start IPFS infrastructure
make ipfs-down # Stop IPFS infrastructure
make ipfs-status # Check IPFS connectivity
Sonr is a Cosmos SDK-based blockchain with integrated IPFS storage and three custom modules:
The main blockchain daemon built with Cosmos SDK v0.50.14, providing:
- AutoCLI for command generation
- EVM compatibility via Evmos integration
- IBC for cross-chain communication
- CosmWasm smart contract support
- IPFS integration for decentralized storage
W3C DID specification implementation with:
- Gasless WebAuthn Registration: Create DIDs without cryptocurrency
- Multi-Algorithm Signatures: Ed25519, ECDSA, RSA, WebAuthn
- External Wallet Linking: MetaMask, Keplr integration
- Verifiable Credentials: W3C-compliant credential issuance
# Create a DID
snrd tx did create-did did:sonr:alice '{"id":"did:sonr:alice",...}' --from alice
# Link external wallet
snrd tx did link-external-wallet did:sonr:alice \
--wallet-address 0x742d35Cc6635C0532925a3b8c17C6e583F4d6A42 \
--wallet-type ethereum \
--from alice
# Query DID
snrd query did resolve did:sonr:alice
Personal data stores with:
- Structured Data Records: Hierarchical data organization
- Protocol-Based Interactions: Enforceable data schemas
- Secure Vaults: Enclave-based key management
- Multi-Chain Support: Cosmos SDK and EVM transaction building
# Create a vault
snrd tx dwn create-vault --from alice
# Store a record
snrd tx dwn write-record '{"data":"...", "protocol":"example.com"}' --from alice
# Query records
snrd query dwn records --owner alice
Decentralized service registry featuring:
- Domain Verification: DNS-based ownership proof
- Service Registration: Verified service endpoints
- Permission Management: UCAN capability integration
# Verify domain ownership
snrd tx svc initiate-domain-verification example.com --from alice
snrd tx svc verify-domain example.com --from alice
# Register service
snrd tx svc register-service my-service example.com \
--permissions "read,write" --from alice
Full Service Module Documentation
Environment variables can be configured for local development:
# Chain configuration
export CHAIN_ID="localchain_9000-1"
export BLOCK_TIME="1000ms"
# Network selection for Starship
export NETWORK="devnet" # or "testnet"
# IPFS configuration
IPFS_API_URL=http://127.0.0.1:5001
Environment variables can be set directly or via a .env
file in the project root.
Edit starship.yml
to configure multi-node testnets:
chains:
- id: sonrtest_1-1
name: custom
numValidators: 3
image: onsonr/snrd:latest
# ... additional configuration
sonr/
βββ app/ # Application setup and module wiring
βββ cmd/ # Binary entry points
β βββ snrd/ # Blockchain node
βββ x/ # Custom chain modules
β βββ did/ # W3C DID implementation
β βββ dwn/ # Decentralized Web Nodes
β βββ svc/ # Service management
βββ types/ # Internal packages
β βββ coins/ # Coin utilities
β βββ ipfs/ # IPFS integration
βββ proto/ # Protobuf definitions
βββ scripts/ # Utility scripts
βββ test/ # Integration tests
βββ docs/ # Documentation site
- GitHub Discussions - Community forum
- GitHub Issues - Bug reports and feature requests
- Twitter - Latest updates
- Documentation Wiki - Detailed guides
Copyright Β© 2024 Sonr, Inc.
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Built with β€οΈ by the Sonr team