| name | dust-protocol |
| description | Activate when the user works with Dust Protocol, stealth transfers, stealth addresses, privacy swaps, DustPool, DustSwap, DustPaymaster, .tok names, ERC-5564, ERC-6538, ZK privacy pools, Poseidon Merkle trees, gasless claims, ERC-4337 stealth accounts, or private payments on Tokamak.
|
| license | MIT |
| metadata | {"author":"tokamak-network","version":"1.0.0"} |
Dust Protocol
Private finance protocol on EVM chains. Two primitives: stealth transfers (send tokens without on-chain link) and privacy swaps (trade ETH/USDC without traceability via Uniswap V4 hooks + ZK proofs).
Source: https://github.com/tokamak-network/dust-protocol
Architecture
Dust Protocol
│
├── Stealth Transfers
│ ├── .tok name registry (on-chain)
│ ├── ECDH key derivation (secp256k1, ERC-5564/6538)
│ ├── Gasless claims via ERC-4337 (DustPaymaster)
│ └── Sub-addresses (sub.alice.tok)
│
├── DustPool (Privacy Pool for Transfers)
│ ├── Poseidon Merkle tree (depth 20, ~1M leaves)
│ ├── Groth16 proof (BN254), ~5,900 constraints
│ └── Consolidate multiple stealth wallets → single address
│
└── DustSwap (Privacy Swaps)
├── DustSwapPoolETH + DustSwapPoolUSDC
├── Uniswap V4 hook (beforeSwap/afterSwap)
├── ZK proof verification atomic with swap
└── Output to stealth address (no link to deposit)
Key Concepts
Stealth Key Derivation
wallet_signature = sign("Dust Protocol stealth key", walletAddress)
entropy = PBKDF2(signature + PIN, salt, 100000 iter, SHA-512)
spendKey = entropy[0:32] // secp256k1 scalar
viewKey = entropy[32:64] // secp256k1 scalar
metaAddress = (spendKey*G, viewKey*G) // registered on ERC-6538