User guide
Documentation
Guides for wallet users on Safrochain Testnet, plus a quick start for developers integrating EightSaf into dApps.
Getting started
Installation
- 1Go to the Chrome Web Store and search for "EightSaf Wallet"
- 2Click "Add to Chrome"
- 3Pin the extension from Chrome's toolbar menu for quick access
Creating a new wallet
- 1Open the EightSaf extension
- 2Select "Create New Wallet"
- 3Write down your 24-word recovery phrase and store it offline
- 4Confirm the phrase by selecting the words in order
- 5Set a spending password (minimum 8 characters)
- 6Name your wallet
Restoring an existing wallet
- 1Click "Restore Wallet" on the welcome screen
- 2Enter your 24-word recovery phrase in the correct order
- 3Set a new spending password
- 4Your wallet and address are restored
Receiving SAF
- 1Open EightSaf and go to Receive
- 2Share your wallet address or QR code with the sender
- 3Your balance updates after the transaction confirms on-chain
Sending SAF
- 1Open EightSaf and click Send
- 2Enter the recipient wallet address
- 3Enter the amount to send
- 4(Optional) Add a memo visible on-chain
- 5Review the estimated network fee
- 6Click "Review Transaction"
- 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
- 1Visit a Safrochain-compatible dApp in your browser
- 2Click "Connect Wallet" on the dApp
- 3Review the connection request in EightSaf
- 4Approve the connection
- 5Unlock your wallet if prompted
The dApp can read your public address. It cannot move funds without your approval and spending password.
Security settings
Settings → Change Spending PasswordEnter your current password, then set a new one.
Settings → Reveal Recovery PhraseEnter your spending password to view your 24-word phrase. Keep this screen private.
Settings → Remove WalletWipes 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.
1. Install
Install the kit and its required peer dependencies in one step:
npm install @safrochain/wallet-kit @cosmos-kit/react @cosmos-kit/corePeer 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.
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.
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 install @interchain-ui/reactimport '@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:
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
Still need help?
Visit the support page or email support@eightsaf.io.