Thanks to visit codestin.com
Credit goes to github.com

Skip to content

sonr-io/sonr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Go Reference GitHub commit activity Static Badge Go Report Card

Sonr

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.

πŸ’‘ Key Features

πŸ” Gasless 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

🌐 Multi-Chain Support

  • Cosmos SDK: Native integration with IBC ecosystem
  • EVM Compatibility: Ethereum smart contract support
  • External Wallets: MetaMask, Keplr, and more

πŸ”‘ Advanced Authentication

  • WebAuthn/Passkeys: Biometric authentication
  • Hardware Security Keys: YubiKey, Titan Key support
  • Multi-Signature: Multiple verification methods per DID

πŸ“¦ Decentralized Storage

  • IPFS Integration: Distributed file storage
  • Encrypted Vaults: Hardware-backed encryption
  • Protocol Schemas: Structured data validation

πŸ“š Technical Specifications

  • 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

πŸ”’ Security

Gasless Transaction Security

  • Limited to WebAuthn registration only
  • Full cryptographic validation required
  • Credential uniqueness enforcement
  • Anti-replay protection

WebAuthn Security

  • Origin validation
  • Challenge-response authentication
  • Device binding
  • Attestation verification

Multi-Algorithm Support

  • Ed25519 (quantum-resistant)
  • ECDSA (secp256k1, P-256)
  • RSA (2048, 3072, 4096 bits)
  • WebAuthn (ES256, RS256)

πŸš€ Quick Start

Installation

# Clone the repository
git clone https://github.com/sonr-io/sonr
cd sonr

# Install the binary
make install

# Verify installation
snrd version

Running a Local Node

# Start single-node testnet (quick iteration)
make localnet

# Start multi-node testnet with Starship
make testnet-start

# Stop testnet
make testnet-stop

Building from Source

# Build snrd blockchain node
make build

# Build Docker image
make docker

# Generate code from proto files
make proto-gen

Local Development Network

# 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

Testing

# 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

Infrastructure

# IPFS for vault operations
make ipfs-up      # Start IPFS infrastructure
make ipfs-down    # Stop IPFS infrastructure
make ipfs-status  # Check IPFS connectivity

πŸ—οΈ Architecture

Sonr is a Cosmos SDK-based blockchain with integrated IPFS storage and three custom modules:

Core Components

Blockchain Node (snrd)

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

πŸ“– Module Documentation

DID Module

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

Full DID Module Documentation

DWN Module

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

Full DWN Module Documentation

Service Module

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

πŸ”§ Configuration

Environment Variables

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.

Starship Configuration

Edit starship.yml to configure multi-node testnets:

chains:
  - id: sonrtest_1-1
    name: custom
    numValidators: 3
    image: onsonr/snrd:latest
    # ... additional configuration

πŸ—οΈ Project Structure

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

🀝 Community & Support

πŸ“„ License

Copyright Β© 2024 Sonr, Inc.

Licensed under the Apache License, Version 2.0. See LICENSE for details.


Built with ❀️ by the Sonr team

About

A Decentralized Identity Network built for the InterChain 🌐

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6