window.ethereum claim. The six-chain coverage was introduced in v2.5.0; the v2.5.x → v2.6.0 line is EVM-path hardening (Base RPC fallback, Tempo gas-limit fix, balance-display fixes); v2.6.1 is the dApp-discoverability layer on top.
Install from the Chrome Web Store or build from source at chopmob-cloud/AlgoVoi.
Versions and releases
The GitHub release runs ahead of the store-reviewed builds. The store listings carry the last stable single-stack release; the six-chain build ships first as a packaged GitHub release (Chrome / Firefox / source zips attached) while store review is in progress.
v2.6.1 — EIP-6963 multi-wallet discovery is the current release (v2.6.1 on GitHub). AlgoVoi announces itself via EIP-6963, so dApps that support the multi-wallet picker (Uniswap, RainbowKit, Wagmi, viem with
multiInjectedProviderDiscovery) list AlgoVoi alongside MetaMask rather than losing the wallet slot to MetaMask’s synchronous window.ethereum injection. The six-chain coverage (EVM Base / Arc / Tempo + Hedera HTS on top of the AVM Algorand / VOI base) was introduced in v2.5.0; the v2.5.x → v2.6.0 patch line hardens the EVM path (Base primary-RPC fallback to base.publicnode.com, Tempo USDCe gas-limit fix, ETH/USDC balance-display fixes, zero-TypeScript-error build); v2.6.1 is the dApp-discoverability layer on top. Protocol × chain coverage is unchanged from v2.5.0. Until the v2.6.1 build clears Chrome Web Store and Firefox AMO review, the six-chain coverage is available by downloading the packaged release zips (algovoi-2.6.1-chrome.zip / -firefox.zip) and loading them as an unpacked / temporary extension, or building from source (see Build and load below). Store builds remain on the stable single-stack 1.0.x line.
Why the extension exists
Most browser wallets pick one chain family (EVM, Solana, or AVM) and run with it. Agent payments cross those boundaries constantly: a buyer agent on Base settling an x402 charge for an Algorand merchant, or an MPP gateway issuing bothmethod="evm" and method="avm" challenges for the same resource. Routing that through three separate wallets multiplies key custody, breaks the approval flow, and defeats the point of native browser-handled fetch() interception.
The AlgoVoi extension collapses the six chains AlgoVoi-the-platform settles on into a single browser wallet, with one popup, one approval UX, and a single page-injected window.algorand provider that resolves the right signing path automatically.
Chain × protocol coverage matrix
All eighteen combinations wired since v2.5.0 (current release v2.6.1). The extension auto-detects the active chain at the page, account, or challenge level and routes the signing call through the correct chain client without user intervention.
Signing scheme by chain
The AVM seed (Algorand + VOI + Hedera) and the EVM seed (Base + Arc + Tempo) live as separate keys inside the same encrypted vault. The vault holds both pairs, and the active-account selector in the popup decides which key path the next signing request will take.
Key features
- EIP-6963 multi-wallet discovery (v2.6.1) — AlgoVoi announces itself via the EIP-6963 standard so dApp wallet pickers (Uniswap, RainbowKit, Wagmi, viem
multiInjectedProviderDiscovery) list AlgoVoi alongside MetaMask rather than losing the slot to MetaMask’s synchronouswindow.ethereumclaim. Both wallets co-exist; the user chooses per dApp. - Encrypted vault — PBKDF2 (600k iterations) + AES-GCM-256. Keys never leave the device unencrypted; the session key is held in service-worker memory only and wiped on lock or service-worker suspension.
- 30-day local signing key — Import a 25-word mnemonic with a 30-day TTL for reliable local signing without WalletConnect-relay dependency. Stricter than MetaMask or Phantom defaults; auto-wipes after the TTL expires.
- Falcon PQC signatures — Post-quantum Falcon-1024 accounts on Algorand mainnet, WASM build (88 KB) of the same C Falcon library backing the AVM v12
falcon_verifyopcode. Quantum-resistant signing today. - AI agent wallet — WalletConnect Web3Wallet mode lets AI agents pair with the extension and request transaction signing without ever touching private keys. All six chains addressable in a single WC session via CAIP-2 namespaces.
- Anti-phishing — Clipboard hijacking detection (warns if the pasted address differs from the copied one), homograph domain detection (flags Unicode lookalike domains), AVM transaction simulation via algod
/v2/transactions/simulate, dangerous-field warnings on rekey / clawback / closeRemainderTo. - Spending cap vault — Deploy an AVM smart contract enforcing per-transaction and daily caps for autonomous agent payments. Owner actions (suspend, resume, withdraw, update limits) via mnemonic or WalletConnect.
- DEX swaps — Algorand ASAs via Haystack Router (Tinyman / Pact / Folks aggregation); VOI tokens via Snowball direct pool swaps with slippage protection.
- Allbridge USDC bridge — Bridge USDC from Algorand to thirteen destination chains via the Bridge tab; transactions built server-side (MCP) and signed locally, with txId-trackable transfer status.
- Coinbase Onramp — Buy ALGO directly from the wallet via a one-time session-token flow; wallet addresses never appear in URL parameters.
- Auto-update notifications — Daily check against the MCP
/versionendpoint; amber badge + banner when a newer release is available.
Page integration (window.algorand)
The extension injects awindow.algorand provider into every page, compatible with ARC-0027:
window.ethereum as a standard EIP-1193 provider directly (so MetaMask-compatible dApps work without any AlgoVoi-specific code), and announces itself via EIP-6963 so multi-wallet dApps surface AlgoVoi in their picker alongside MetaMask. The extension also accepts WalletConnect pairing for eip155:8453 (Base), eip155:5042002 (Tempo), and eip155:1329 (Arc testnet) for agent / remote-signing flows. AP2 mandate requests across all six chains flow through window.algorand.ap2.requestPayment(cartMandate); the extension routes the underlying signature call to the correct chain client based on the active account.
Automatic 402 handling
The extension interceptsfetch() and XMLHttpRequest calls that return HTTP 402 with PAYMENT-REQUIRED (x402 v1) or WWW-Authenticate: Payment (MPP) headers, surfaces an approval popup with the transaction details, signs locally with the active-account key, broadcasts the on-chain transaction (AVM via algosdk, HTS via HashPack WC, or EVM via viem + eth_sendRawTransaction), and retries the original request with the resulting PAYMENT-SIGNATURE or Authorization: Payment header. No page-side payment code is needed.
did:pkh:eip155:{chainId}:{address} source field so downstream verifiers resolve the signer to the correct chain without a translation layer; AVM credentials carry the standard algorand:{genesis_id} or equivalent CAIP-2 identifier.
Build and load (development)
dist/ as an unpacked extension in Chrome (chrome://extensions, Developer mode → Load unpacked) or dist-firefox/manifest.json as a temporary add-on in Firefox (about:debugging#/runtime/this-firefox).
See also
- x402 protocol — content paywall / API metering payment protocol
- MPP protocol — Machine Payments Protocol with
WWW-Authenticate: Paymentsemantics - AP2 protocol — Google Agent Payments Protocol mandate signing
- Concept: chains overview — full chain support matrix across the platform
- MCP server — programmatic access to the same payment surface from Claude, Cursor, and Windsurf