> ## Documentation Index
> Fetch the complete documentation index at: https://docs.algovoi.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Chrome extension

> AlgoVoi's in house browser wallet: native x402, MPP and AP2 payment protocol support across six chains in one Manifest V3 Chrome extension.

The **AlgoVoi Chrome extension** is the in-house browser wallet for the AlgoVoi payment stack. As of **v2.6.1** (2026-05-21) it ships native x402 / MPP / AP2 support across six mainnet chains in a single extension: Algorand, VOI, Hedera, Base, Arc, and Tempo. Eighteen of eighteen protocol × chain combinations are wired in one popup, with chain-appropriate signing schemes routed transparently behind the UI. The v2.6.1 release adds [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963) multi-wallet discovery, so dApps that use the standard wallet picker (Uniswap, RainbowKit, Wagmi) surface AlgoVoi alongside MetaMask rather than losing it to MetaMask's synchronous `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](https://chromewebstore.google.com/detail/algovoi/ofmgegnkjdmbeakjbmfaagigmhagdcbl) or build from source at [chopmob-cloud/AlgoVoi](https://github.com/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.

| Channel                                                                                               | Version   | Date       | Coverage                                                                                                                                                          |
| ----------------------------------------------------------------------------------------------------- | --------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Chrome Web Store](https://chromewebstore.google.com/detail/algovoi/ofmgegnkjdmbeakjbmfaagigmhagdcbl) | **1.0.1** | 2026-04-11 | Algorand + VOI (x402 / MPP / AP2 on AVM)                                                                                                                          |
| [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/algovoi/)                            | **1.0.2** | 2026-04-09 | Algorand + VOI (x402 / MPP / AP2 on AVM)                                                                                                                          |
| [GitHub release (latest)](https://github.com/chopmob-cloud/AlgoVoi/releases/tag/v2.6.1)               | **2.6.1** | 2026-05-21 | Six chains — Algorand, VOI, Hedera, Base, Arc, Tempo; 18/18 protocol × chain. EIP-6963 multi-wallet discovery. Packaged zips attached (chrome / firefox / source) |
| [GitHub release (prior)](https://github.com/chopmob-cloud/AlgoVoi/releases/tag/v2.6.0)                | 2.6.0     | 2026-05-19 | Same six-chain coverage; Base RPC fallback added                                                                                                                  |

**v2.6.1 — EIP-6963 multi-wallet discovery** is the current release ([v2.6.1 on GitHub](https://github.com/chopmob-cloud/AlgoVoi/releases/tag/v2.6.1)). AlgoVoi announces itself via [EIP-6963](https://eips.ethereum.org/EIPS/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](#build-and-load-development) 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 both `method="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

| Protocol | Algorand | VOI | Hedera | Base | Arc | Tempo |
| -------- | -------- | --- | ------ | ---- | --- | ----- |
| **x402** | ✅        | ✅   | ✅      | ✅    | ✅   | ✅     |
| **MPP**  | ✅        | ✅   | ✅      | ✅    | ✅   | ✅     |
| **AP2**  | ✅        | ✅   | ✅      | ✅    | ✅   | ✅     |

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

| Chain    | x402 / MPP signing                                                                                           | AP2 mandate signing                                                              |
| -------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| Algorand | `algosdk` txn (Ed25519) — native ALGO or USDC ASA `31566704`                                                 | `algosdk.signBytes` (Ed25519)                                                    |
| VOI      | `algosdk` txn (Ed25519) — native VOI or aUSDC ASA `302190`                                                   | `algosdk.signBytes` (Ed25519)                                                    |
| Hedera   | HashPack WalletConnect (HTS) — HBAR or USDC HTS `0.0.456858`                                                 | `algosdk.signBytes` (Ed25519, reuses the AVM key)                                |
| Base     | viem `signTransaction` (secp256k1) + ERC-20 `transfer(USDC)` on `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | viem `signMessage` (EIP-191 personal\_sign), 65-byte signature base64url-encoded |
| Arc      | viem `signTransaction` (secp256k1) + native value transfer (Arc's native gas token is USDC)                  | viem `signMessage` (EIP-191)                                                     |
| Tempo    | viem `signTransaction` (secp256k1) + ERC-20 `transfer(USDCe)`                                                | viem `signMessage` (EIP-191)                                                     |

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 synchronous `window.ethereum` claim. 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_verify` opcode. 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 `/version` endpoint; amber badge + banner when a newer release is available.

See the [extension repository README](https://github.com/chopmob-cloud/AlgoVoi/blob/main/README.md) for the full hardening list (Tier I-XXIV) and the latest security audit report.

## Page integration (window\.algorand)

The extension injects a `window.algorand` provider into every page, compatible with ARC-0027:

```ts theme={null}
// Connect and get accounts
const { accounts } = await window.algorand.enable({ genesisID: "mainnet-v1.0" });

// Sign AVM transactions
const signedTxns = await window.algorand.signTransactions([txnBase64]);

// Sign arbitrary bytes (AP2 mandate hashes, AVM-side)
const { sig } = await window.algorand.signBytes({ data: new Uint8Array([...]) });
```

For EVM chains the extension injects `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 intercepts `fetch()` 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.

```ts theme={null}
// This fetch triggers an approval popup if the server returns 402.
// The extension picks the chain from the challenge's accepts[] legs and the active account.
const response = await fetch("https://api.example.com/premium-data");
const data = await response.json(); // resolves after payment is approved
```

MPP credentials on EVM chains carry a `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)

```bash theme={null}
git clone https://github.com/chopmob-cloud/AlgoVoi.git
cd AlgoVoi
npm install
cp .env.example .env
# Fill in VITE_WC_PROJECT_ID, VITE_HAYSTACK_ROUTER_API_KEY (optional)
npm run build
```

Load `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](/protocols/x402) — content paywall / API metering payment protocol
* [MPP protocol](/protocols/mpp) — Machine Payments Protocol with `WWW-Authenticate: Payment` semantics
* [AP2 protocol](/protocols/ap2) — Google Agent Payments Protocol mandate signing
* [Concept: chains overview](/concepts/chains-overview) — full chain support matrix across the platform
* [MCP server](/integrations/mcp-server) — programmatic access to the same payment surface from Claude, Cursor, and Windsurf
