Back to home

User guide

Documentation

Guides for wallet users on Safrochain Testnet, plus a quick start for developers integrating EightSaf into dApps.

Getting started

Installation

  1. 1Go to the Chrome Web Store and search for "EightSaf Wallet"
  2. 2Click "Add to Chrome"
  3. 3Pin the extension from Chrome's toolbar menu for quick access

Creating a new wallet

  1. 1Open the EightSaf extension
  2. 2Select "Create New Wallet"
  3. 3Write down your 24-word recovery phrase and store it offline
  4. 4Confirm the phrase by selecting the words in order
  5. 5Set a spending password (minimum 8 characters)
  6. 6Name your wallet

Restoring an existing wallet

  1. 1Click "Restore Wallet" on the welcome screen
  2. 2Enter your 24-word recovery phrase in the correct order
  3. 3Set a new spending password
  4. 4Your wallet and address are restored

Receiving SAF

  1. 1Open EightSaf and go to Receive
  2. 2Share your wallet address or QR code with the sender
  3. 3Your balance updates after the transaction confirms on-chain

Sending SAF

  1. 1Open EightSaf and click Send
  2. 2Enter the recipient wallet address
  3. 3Enter the amount to send
  4. 4(Optional) Add a memo visible on-chain
  5. 5Review the estimated network fee
  6. 6Click "Review Transaction"
  7. 7Enter your spending password to authorize

Before you send

  • Double-check the recipient address
  • Transactions are irreversible once broadcast
  • Network fees are paid in SAF
  • Do not put sensitive information in memos

Connecting to a dApp

  1. 1Visit a Safrochain-compatible dApp in your browser
  2. 2Click "Connect Wallet" on the dApp
  3. 3Review the connection request in EightSaf
  4. 4Approve the connection
  5. 5Unlock your wallet if prompted

The dApp can read your public address. It cannot move funds without your approval and spending password.

Security settings

Change Spending PasswordSettings → Change Spending Password

Enter your current password, then set a new one.

Reveal Recovery PhraseSettings → Reveal Recovery Phrase

Enter your spending password to view your 24-word phrase. Keep this screen private.

Remove WalletSettings → Remove Wallet

Wipes all wallet data from the extension. Back up your recovery phrase before doing this.

Transaction history

The Activity tab shows recent transactions from the Safrochain blockchain. Use View on Explorer to open full details on the block explorer.

Network

EightSaf currently operates on Safrochain Testnet.

Mainnet support is planned. The network selector will activate when mainnet launches.

For developers

Wallet kit overview

@safrochain/wallet-kit is a plug-and-play connection layer for Safrochain dApps. It wraps cosmos-kit with Safrochain chain config, assets, and wallet adapters already wired. EightSaf is included in the default wallet list.

View on npm

1. Install

Install the kit and its required peer dependencies in one step:

npm
npm install @safrochain/wallet-kit @cosmos-kit/react @cosmos-kit/core

Peer dependencies are required

@cosmos-kit/react and @cosmos-kit/core are not bundled inside the kit. Installing only @safrochain/wallet-kit will cause a runtime crash.

2. Wrap your app

Add SafrochainProvider at the root of your React app. It defaults to Safrochain Testnet.

main.tsx
import { SafrochainProvider } from '@safrochain/wallet-kit';
import App from './App';

export default function Root() {
  return (
    <SafrochainProvider>
      <App />
    </SafrochainProvider>
  );
}

3. Connect a wallet

Call useSafrochain() in any child component. Use openView to open the wallet picker, then read address and isConnected once the user approves.

App.tsx
import { useSafrochain } from '@safrochain/wallet-kit';

export default function App() {
  const { address, isConnected, openView, disconnect } = useSafrochain();

  return isConnected ? (
    <div>
      <p>Connected: {address}</p>
      <button onClick={disconnect}>Disconnect</button>
    </div>
  ) : (
    <button onClick={openView}>Connect Wallet</button>
  );
}

That is the full onboarding path: install, wrap, connect. Your dApp can now read the user address and request signatures through the hook.

Built-in wallet modal (optional)

To use the default wallet selection modal, install @interchain-ui/react and import its styles once in your entry file:

npm
npm install @interchain-ui/react
main.tsx
import '@interchain-ui/react/styles';

If you pass a custom walletModal prop to SafrochainProvider, this package is not required.

EightSaf only

By default the kit lists EightSaf, Keplr, Leap, and Cosmostation. To show only EightSaf:

main.tsx
import { SafrochainProvider, selectWallets } from '@safrochain/wallet-kit';

<SafrochainProvider wallets={selectWallets('eightsaf')}>
  <App />
</SafrochainProvider>

What you can do next

After connection, useSafrochain() exposes signing clients, fee estimation, and broadcast helpers. Common tasks:

  • Send SAF with getSigningStargateClient() and estimateFee()
  • Execute CosmWasm contracts with getSigningCosmWasmClient()
  • Sign arbitrary messages for off-chain auth with signArbitrary()
  • Query balances without a connected wallet via getStargateClient()

Full API reference, network overrides, WalletConnect setup, and code samples are in the package readme.

Contribute

Bug reports, wallet adapters, and documentation improvements are welcome on the open-source repo:

github.com/Eightblockchain/safrochain-wallet-kit

See CONTRIBUTING_WALLET.md in the repo for adding a custom wallet adapter.

Frequently asked questions