Documentation
Pelagus Wallet
Pelagus is the community-owned, open-source browser wallet for Quai Network. It is fully self-custodial: your keys are generated and stored on your device, and every transaction is signed locally with your approval. This guide covers using the wallet and building dApps that connect to it.
Overview
Pelagus is a Web3 wallet delivered as a browser extension for Quai Network. It supports Quai's dual-token model (QUAI and Qi), moving value across Quai's sharded, multi-chain architecture, and connecting to Quai dApps through an injected provider.
- Self-custodial. There is no Pelagus account and no server that holds your funds. Keys never leave your device.
- Open source. Community owned and operated — read, audit, or build from source on GitHub.
- Quai-native. Built for Quai's dual-token economy and its region/zone shard structure.
Install Pelagus
Pelagus runs on Chromium browsers — Chrome, Brave, Edge, and Opera — via the Chrome Web Store, and can be built for Firefox from source.
- Open the Pelagus listing on the Chrome Web Store.
- Click Add to browser and confirm.
- Pin Pelagus to your toolbar so it's easy to reach.
- Open the extension to start setup.
Create or import a wallet
Create a new wallet
On first launch Pelagus generates a recovery phrase (a 12- or 24-word mnemonic) and asks you to set a local password. The password encrypts your vault on this device; the recovery phrase is the master key to your funds.
Import an existing wallet
Choose Import and paste an existing recovery phrase or a private key. Pelagus derives your accounts locally — nothing is sent to a server.
Accounts & zones
A single recovery phrase can hold many accounts. Quai is a sharded network: it is split into regions (Cyprus, Paxos, Hydra), each divided into zones such as Cyprus-1. Every address belongs to a specific shard, and transactions are routed accordingly.
- The default zone is
Cyprus-1(chain id0x9). - Pelagus shows which zone an address belongs to and selects the right chain when you send.
- Switch accounts and zones from the wallet header.
QUAI vs Qi) to a compatible address.Send & receive
Receive
Open Receive to view and copy your address or QR code. Confirm the sender is using the same asset and a compatible zone before sending.
Send
- Choose Send and pick the asset (
QUAIorQi). - Enter the recipient address and amount.
- Review the network fee and details.
- Confirm — Pelagus signs the transaction locally and broadcasts it to Quai.
Swap
Pelagus includes a built-in Swap so you can trade supported assets without leaving the wallet. It runs against Quai directly and settles to your self-custodial accounts.
Convert Quai ↔ Qi
Quai runs a dual-token model. QUAI is the network's primary asset used for gas, staking, and value transfer. Qi is an energy-based currency designed to track the real cost of mining — a decentralized medium of exchange anchored to energy.
Converting between them happens natively on Quai, with no bridge or third party. In Pelagus:
- Open Convert.
- Pick a direction —
QUAI → QiorQi → QUAI. - Enter an amount and review the conversion.
- Confirm to sign and submit on-chain.
Security & self-custody
- Keys stay on device. Your vault is encrypted with your password and never uploaded.
- Local signing. Every signature and transaction requires your explicit on-screen approval.
- Isolated core. Pelagus separates trusted key-handling code from the untrusted UI to shrink the attack surface.
- Open to review. The full extension is open source — verify it yourself.
Good habits
- Store your recovery phrase offline; never paste it into a site.
- Check the site domain before approving a connection or signature.
- Read what you're signing — reject anything unexpected.
Connect your dApp
Pelagus injects an EIP-1193-style provider at window.pelagus and announces it via EIP-6963. Detect the provider, request accounts, then use quais.js to read state and build transactions.
Detect & connect
// Pelagus injects an EIP-1193 provider
const quai = window.pelagus
if (!quai) {
// prompt the user to install Pelagus
window.open('https://chromewebstore.google.com/detail/pelagus/nhccebmfjcbhghphpclcfdkkekheegop')
}
// request access — shows the connection prompt
const accounts = await quai.request({
method: 'quai_requestAccounts',
})
console.log('connected:', accounts[0])Send a transaction with quais.js
import { quais } from 'quais'
// wrap the injected provider
const provider = new quais.BrowserProvider(window.pelagus)
const signer = await provider.getSigner()
const tx = await signer.sendTransaction({
to: '0x00...recipient',
value: quais.parseQuai('1.0'), // 1 QUAI
})
await tx.wait()Provider reference
Call methods with window.pelagus.request({ method, params }). Pelagus mirrors common EIP-1193 methods with Quai (quai_*) aliases.
| Method | Description |
|---|---|
quai_requestAccounts | Connect; prompts the user and returns authorized accounts. |
quai_accounts | Currently connected accounts (no prompt). |
quai_chainId | Current chain / zone id, e.g. 0x9. |
personal_sign | Sign a human-readable message. |
quai_sendTransaction | Build, sign, and broadcast a transaction. |
wallet_switchEthereumChain | Switch the active zone; fires chainChanged. |
wallet_requestPermissions | Request EIP-2255 permissions. |
Events
Subscribe with window.pelagus.on(event, handler):
accountsChanged— the connected account changed.chainChanged— the active zone changed.connect/disconnect— provider connection state.
Build on Quai
Everything you need to build a Quai dApp that works with Pelagus:
- quais.js ↗ — the JavaScript library for reading Quai state and building transactions.
- Quai Network docs ↗ — chain details, RPC endpoints, and protocol reference.
- QuaiScan ↗ — block explorer for addresses and transactions.
- go-quai ↗ — the official Go node implementation.
