Live demo: arkivox.vercel.app
Arkivox (Arkiv + Nox) is a testnet demo for a confidential token ledger with selective disclosure. Record transfers on Arkiv Braga, protect amounts with iExec Nox on Arbitrum Sepolia, and share exactly one transaction with an auditor — not your full history.
- Confidential transfers — AES-encrypted payloads on Arkiv; DEK wrapped in a Nox handle
- Public wrap / unwrap — on-chain cToken ops logged in plaintext (already public on Arbiscan)
- Selective disclosure — grant an auditor wallet access to one transaction’s amount
- Revoke — Arkiv tombstone + app-side block (on-chain
removeViewerwhen Nox supports it) - Wallet-first — MetaMask / WalletConnect via Reown AppKit; Braga + Arbitrum Sepolia in one flow
flowchart LR
subgraph client [Browser]
UI[Arkivox UI]
end
subgraph nox [Arbitrum Sepolia]
TEE[Nox TEE handles]
end
subgraph arkiv [Arkiv Braga]
TX[token_transaction]
DISC[auditor_disclosure]
end
UI -->|encrypt DEK / amount| TEE
UI -->|ciphertext + metadata| TX
UI -->|share grant| DISC
TEE -->|viewer ACL| DISC
| Transaction type | On-chain (cToken) | On Arkiv |
|---|---|---|
| Transfer | Confidential (ERC-7984) | Encrypted (v3) + Nox DEK |
| Wrap / unwrap | Public | Plaintext reference + Arbiscan tx hash |
| Role | Arkiv index (public) | After reveal |
|---|---|---|
| Owner | Entity type, timestamps | Full amount, memo, counterparty |
| Auditor | Grant / parent hashes only | One shared transaction |
| Everyone else | Same minimal metadata | Nothing |
| Layer | Network | Role |
|---|---|---|
| Arkiv | Braga (testnet) | Durable token_transaction, auditor_disclosure, auditor_revocation |
| Nox | Arbitrum Sepolia | TEE key handles, addViewer for auditors |
| UI | Next.js 16 | Terminal-style wallet app |
PROJECT_ATTRIBUTE: project = arkivox-7k2m (legacy scope arkiv-vault-nox-demo-7k2m still indexed)
git clone https://github.com/armsves/arkivox.git
cd arkivox
npm install
cp .env.local.example .env.local
# optional: NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID from https://cloud.reown.com
npm run devOpen http://localhost:3000.
- ETH — Sepolia faucet → bridge to Arbitrum Sepolia
- USDC / RLC (wrap demos) — Circle faucet (Arbitrum Sepolia)
- Braga GLM — Arkiv faucet
Use the in-app Faucets link for the full list.
| Variable | Required | Description |
|---|---|---|
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID |
Recommended | Reown / WalletConnect project ID |
NEXT_PUBLIC_ARKIV_PROJECT |
No | Override Arkiv project attribute (default arkivox-7k2m) |
NEXT_PUBLIC_APP_URL |
No | Canonical URL for OG metadata (set on Vercel) |
npm run dev # local dev server
npm run build # production build
npm run lint # ESLint
npm run test:e2e:smoke # 1-key Arkiv + Nox smoke test
npm run test:e2e # 2-key share + revoke flowE2E tests need funded keys — see .env.test.example.
Set NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID in the Vercel project settings for reliable wallet pairing.