Files
sonr/client
40eadc995e Feat/1285 es ucan formatting (#1302)
* feat: Add Enclave Usage Examples

* feat(es/ucan): Add comprehensive integration tests

- Create integration.test.ts with full UCAN token lifecycle testing
- Cover end-to-end token creation, parsing, and validation
- Test capability attenuation and delegation chains
- Validate multi-algorithm support and timestamp scenarios
- Implement error recovery and performance test scenarios

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>

* No commit suggestions generated

* No commit suggestions generated

* chore: Remove migrated components and add migration documentation

Removed all code and references for components that have been moved to separate repositories:

**Moved to sonr-io/hway:**
- bridge/ - HTTP service with OAuth2/OIDC/WebAuthn handlers
- cmd/hway/ - Highway service binary
- internal/migrations/ - PostgreSQL schema migrations

**Moved to sonr-io/motr:**
- cmd/motr/ - Motor worker service (WASM vault operations)
- cmd/vault/ - Vault CLI tool
- crypto/ - Comprehensive cryptographic library
- packages/ - TypeScript SDK packages (es, sdk, ui, com, pkl)
- web/auth/ - Authentication web application
- web/dash/ - Dashboard web application

**Updated Configuration:**
- Makefile: Removed build/test/release targets for moved components
- CLAUDE.md: Simplified to focus on core blockchain components
- devbox.json: Removed scripts for moved services
- docker-compose.yml: Removed hway, postgres, redis, auth, dash services
- .github/scopes.yml: Removed CI scopes for migrated components
- .goreleaser.yml: Updated release configuration

**Added Migration Documentation:**
- MIGRATE_HWAY.md: Comprehensive Highway service architecture and migration guide
- MIGRATE_MOTR.md: Comprehensive Motor/Worker/Vault architecture and migration guide

These migration documents provide complete context for setting up the new repositories including architecture diagrams, component breakdowns, API documentation, and migration checklists.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* No commit suggestions generated

* chore: Remove contracts references and documentation

Removed all references to the contracts directory that was migrated to a separate repository.

**Changes:**
- .gitignore: Removed contract-specific ignore patterns for DAO and wSNR contracts
- .gitignore: Removed hway and motr binary references (already migrated)
- .rgignore: Removed contracts, chains, and crypto directory references
- docs/reference/contracts/: Removed DAO.mdx and wSNR.mdx documentation files

This completes the cleanup of migrated components from the repository.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: add crypto library migration documentation

Added comprehensive migration documentation for the crypto library that was
moved to sonr-io/crypto repository. This documentation provides complete context
for understanding the cryptographic primitives and protocols used throughout
the Sonr ecosystem.

## Key Documentation Added

### MIGRATE_CRYPTO.md
Complete documentation of the crypto library covering:

**Core Cryptographic Primitives**
- Elliptic curve implementations (Ed25519, Secp256k1, P-256, BLS12-381, Pallas/Vesta)
- Native curve arithmetic with optimized field operations
- Pairing-friendly curves for BLS signatures

**Multi-Party Computation (MPC)**
- MPC enclave for vault key generation and management
- Threshold cryptography (TECDSA, TED25519 with FROST protocol)
- Distributed Key Generation (DKG) via Gennaro and FROST protocols
- Secret sharing schemes (Shamir, Feldman VSS, Pedersen VSS)

**Digital Signature Schemes**
- BLS signatures with aggregation support
- BBS+ signatures for selective disclosure
- Schnorr signatures (standard and Mina/NEM variants)
- ECDSA with deterministic nonce generation

**Zero-Knowledge Proofs**
- Bulletproofs for range proofs
- Inner Product Arguments (IPA)
- Batch verification support

**Advanced Cryptographic Protocols**
- Cryptographic accumulators for set membership proofs
- Paillier homomorphic encryption
- Oblivious Transfer (OT) protocols
- Verifiable Random Functions (VRF)

**Key Management & Identity**
- DID key management with multi-chain support
- Multi-algorithm public key handling
- Wallet address derivation (Bitcoin, Ethereum, Cosmos, Solana, etc.)

**UCAN Integration**
- User-Controlled Authorization Networks
- Capability delegation and attenuation
- JWT-based capability tokens
- MPC-enabled UCAN signing

**Security Utilities**
- AEAD encryption (AES-GCM, AES-SIV)
- Argon2 key derivation
- ECIES encryption
- Secure memory handling

### MIGRATE_MOTR.md Updates
Updated Motor migration documentation to clarify that the crypto library
is now a separate external dependency at github.com/sonr-io/crypto v1.0.1

## Repository Context

The crypto library has been successfully migrated to its own repository
and is published as a Go module. It serves as the foundational cryptographic
layer for:
- Sonr blockchain (snrd) - DID signatures, vault operations
- Highway service (hway) - UCAN token signing, WebAuthn
- Motor/Worker (motr) - MPC vault operations, threshold signatures

## Integration Impact

All Sonr ecosystem components now depend on the external crypto library:
```go
require github.com/sonr-io/crypto v1.0.1
```

The migration enables independent versioning and maintenance of cryptographic
primitives while maintaining security and compatibility across the ecosystem.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* No commit suggestions generated

* No commit suggestions generated

* No commit suggestions generated

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-10 11:47:18 -04:00
..
2025-10-10 11:47:18 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-10 11:47:18 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00
2025-10-03 14:45:52 -04:00

Sonr Go Client SDK

The official Go client SDK for the Sonr blockchain, providing idiomatic Go interfaces for interacting with Sonr's decentralized identity, data storage, and service management features.

Features

  • Blockchain Interaction: Query chain state and broadcast transactions
  • Module Support: Comprehensive support for DID, DWN, SVC, and UCAN modules
  • WebAuthn Integration: Passwordless authentication with hardware-backed keys
  • Transaction Building: Simplified transaction construction and broadcasting
  • Key Management: Secure keyring integration with multiple backends
  • Network Configuration: Pre-configured endpoints for testnet and mainnet

Installation

go get github.com/sonr-io/sonr/client

Quick Start

Basic SDK Setup

package main

import (
    "context"
    "log"

    client "github.com/sonr-io/sonr/client"
)

func main() {
    // Initialize SDK with testnet configuration
    sdk, err := client.NewWithNetwork("testnet")
    if err != nil {
        log.Fatal(err)
    }
    defer sdk.Close()

    // Or create with custom configuration
    cfg := client.DefaultConfig()
    cfg.Network.GRPCEndpoint = "localhost:9090"
    sdk, err = client.New(cfg)
    if err != nil {
        log.Fatal(err)
    }

    // Check connection
    if !sdk.IsConnected() {
        log.Fatal("Failed to connect to network")
    }

    // Access the underlying Sonr client
    sonrClient := sdk.Client()

    // Query chain info
    ctx := context.Background()
    info, err := sonrClient.Query().GetNodeInfo(ctx)
    if err != nil {
        log.Fatal(err)
    }

    log.Printf("Connected to chain: %s", info.Network)
    log.Printf("SDK Version: %s", client.Version())
}

Transaction Broadcasting

// Get the client from SDK
sonrClient := sdk.Client()

// Create and broadcast a transaction
tx := sonrClient.Transaction().
    WithChainID("sonrtest_1-1").
    WithGasPrice(0.001, "usnr").
    WithMemo("Hello Sonr!")

// Add messages to transaction
tx.AddMessage(/* your message */)

// Sign and broadcast
result, err := tx.SignAndBroadcast(ctx, keyring)
if err != nil {
    log.Fatal(err)
}

log.Printf("Transaction hash: %s", result.TxHash)

Module-Specific Operations

// Get the client from SDK
sonrClient := sdk.Client()

// DID operations
didClient := sonrClient.DID()
did, err := didClient.CreateDID(ctx, didOpts)

// DWN operations
dwnClient := sonrClient.DWN()
record, err := dwnClient.CreateRecord(ctx, recordData)

// Service operations
svcClient := sonrClient.SVC()
service, err := svcClient.RegisterService(ctx, serviceConfig)

// UCAN operations
ucanClient := sonrClient.UCAN()
capability, err := ucanClient.CreateCapability(ctx, capabilitySpec)

API Overview

Core Client (sonr.Client)

The main client provides access to:

  • Query operations: Read blockchain state
  • Transaction building: Create and broadcast transactions
  • Module clients: Access to specialized functionality
  • Connection management: Handle multiple endpoint types

Module Clients

  • DID Client: W3C DID operations with WebAuthn support
  • DWN Client: Decentralized Web Node data management
  • SVC Client: Service registration and management
  • UCAN Client: User-Controlled Authorization Networks

Key Management

  • Keyring integration: Support for multiple keyring backends
  • Hardware keys: WebAuthn and hardware wallet support
  • Multi-signature: Threshold signature schemes

Network Configuration

Pre-configured networks:

  • Testnet: sonrtest_1-1 with development endpoints
  • Mainnet: Production network configuration (coming soon)

Examples

See the examples/ directory for complete working examples:

  • CLI Tool: Example command-line application
  • Web Integration: HTTP API server
  • Key Management: Keyring and signing examples
  • Module Operations: Comprehensive module usage

Documentation

Contributing

This SDK is part of the main Sonr repository. Please see the main project's contributing guidelines.

License

This project is licensed under the Apache 2.0 License.