Skip to main content

SafHandle hub

SafHandle maps short names (@john) and phone numbers to addr_safro addresses via an on-chain CosmWasm registry. Use it in mobile and web apps so users never paste 45-character addresses.

Status

The @safrochaindev/safhandle npm package is in spec / docs phase. Canonical API docs live on GitHub. npm publish is upcoming.

Why SafHandle?

Raw addressSafHandle
Hard to verifyShort @name
Copy/paste errorsQR + deep links
Poor share UXPay links in chat apps

Hero: resolve a handle

Full guide: Resolve handles.

import { SafHandle } from '@safrochaindev/safhandle';

const safHandle = new SafHandle({ network: 'safrochain-testnet' });
const address = await safHandle.getAddress('john');
// addr_safro1...

Then build MsgSend with the resolved address. See Interact from apps.

Resolution flow

Why use the SDK?

BenefitDetail
Network-awareTestnet vs mainnet config built in
Typed APIResolve, validate, format handles
Contract alignmentMatches safhandle-contract messages

SDK operations

OperationMethodPage
Resolve @name or phonegetAddress()Resolve
Register short nameregisterName()Register
Link phone (Phase 2)linkPhone()Register
Transfer nametransferName()Manage
Release namereleaseName()Manage
Read feesgetConfig()Manage
Validate inputisValidName(), normalizeName()Resolve

Registration fees (on-chain)

Handle typeFee (approx.)
Name (@john)50 SAF
Phone number100 SAF

Fees are paid in usaf at registration time on chain.

Canonical documentation (GitHub)

TopicLink
Getting startedsafhandle-sdk README
API referenceSDK docs folder
Integration guideIntegration
Wallet integrationWallet integration
ArchitectureArchitecture
Contractsafhandle-contract