SafHandle SDK
TypeScript client for short names and phone links on Safrochain
Status: Specification / Documentation phase. Package implementation and npm publish will follow in a later milestone.
SafHandle SDK lets any wallet or dApp resolve short names and phone numbers to addr_safro wallet addresses on Safrochain.
import { SafHandle } from '@safrochain/safhandle';
const safHandle = new SafHandle({ network: 'safrochain-testnet' });
const address = await safHandle.getAddress('john');
const address2 = await safHandle.getAddress('+243899123456');| Without SafHandle | With SafHandle SDK |
|---|---|
| Users paste 50+ character addresses | Users type john or +243899123456 |
| Each app builds its own CosmWasm queries | One typed client for all integrators |
| Inconsistent name normalization | Shared validation rules |
| Document | Contents |
|---|---|
| docs/README.md | Documentation index |
| GETTING_STARTED.md | Install and first resolve |
| API_REFERENCE.md | SafHandle client methods |
| INTEGRATION_GUIDE.md | dApp integration patterns |
| WALLET_INTEGRATION.md | Keplr, Leap, signing flows |
| PHONE_VERIFICATION.md | Phase 2 verification |
| NETWORKS.md | Network config schema |
| ERROR_HANDLING.md | Error types and recovery |
| ARCHITECTURE.md | SDK ↔ contract ↔ chain |
| ROADMAP.md | Publish timeline |
| Example | Description |
|---|---|
| node-resolve | Resolve a name from Node.js |
| browser-wallet | Browser wallet send flow |
| react-hook | React hook for name lookup |
Examples are markdown walkthroughs in this phase (no runnable code yet).
| Action | Default fee |
|---|---|
| Register short name | 50 SAF |
| Link phone | 100 SAF |
See contract fees doc.
| Repository | Description |
|---|---|
| safhandle-contract | CosmWasm registry specification |
See CONTRIBUTING.md. Security: SECURITY.md.
MIT — Copyright (c) 2026 Safrochain