A Chrome extension wallet for the Unicity Protocol testnet. Manage UCT tokens, register nametags, and send/receive payments.
- Go to the Releases page and download the latest
sphere-wallet-v*.zip - Unzip the downloaded file
- Open Chrome and navigate to
chrome://extensions - Enable Developer mode (toggle in the top-right corner)
- Click Load unpacked and select the unzipped folder
- The Sphere Wallet icon will appear in your toolbar
- Click the Sphere Wallet icon in your toolbar
- Create a new wallet and set a password
- Save your recovery phrase — this is the only way to restore your wallet
- Go to Settings > Network > Configure and enter your API key
- Register a nametag so others can send you tokens by name
# Install dependencies
npm install
# Dev build (watch mode)
npm run dev
# Production build
npm run build
# Build + zip for distribution
npm run packageLoad the dist/ folder as an unpacked extension in chrome://extensions for development.
- Wallet management — create, import, backup via seed phrase
- L3 payments — send/receive UCT and other tokens
- L1 payments — ALPHA blockchain transactions
- Nametags — register @username for human-readable addresses
- Connect Protocol — dApps can connect to the wallet via
ExtensionTransportand request queries/intents - Connected Sites — manage approved dApp origins (Settings → Connected Sites)
- window.sphere API — legacy web page integration via injected script
Web dApps can integrate with Sphere Extension using the Sphere Connect protocol:
import { ConnectClient } from '@unicitylabs/sphere-sdk/connect';
import { ExtensionTransport } from '@unicitylabs/sphere-sdk/connect/browser';
// Silent auto-connect on page load
const client = new ConnectClient({
transport: ExtensionTransport.forClient(),
dapp: { name: 'My dApp', description: '...', url: location.origin },
silent: true, // fast-fail if not approved — no popup
});
try {
const { identity } = await client.connect(); // instant if already approved
} catch {
// Not approved — show Connect button
}
// User-triggered connect (shows approval popup in extension)
const client2 = new ConnectClient({ transport: ExtensionTransport.forClient(), dapp });
const { identity, permissions } = await client2.connect();
// Queries and intents
const balance = await client2.query('sphere_getBalance');
await client2.intent('send', { recipient: '@alice', amount: 100, coinId: 'USDC' });See CONNECT.md for the full integration guide.
| Symbol | Decimals |
|---|---|
| UCT | 18 |
| USDU | 6 |
| EURU | 6 |
| SOL | 9 |
| BTC | 8 |
| ETH | 18 |
| ALPHT | 8 |
| USDT | 6 |
| USDC | 6 |