Add ERC: Privacy Token
This EIP defines a minimal interface standard for privacy tokens on Ethereum.
While developing privacy solutions for the Ethereum ecosystemβincluding wrapper protocols (converting ERC-20 β privacy tokens) and dual-mode tokens (combining public and private balances)βwe identified a recurring need for standardized privacy primitives. Without a common interface, each implementation reinvents commitments, nullifiers, and note encryption, leading to ecosystem fragmentation.
This standard provides that common foundation. It enables:
- Wrapper protocols: Implement this interface for their privacy layer
- Dual-mode tokens protocols: Combine standards via
contract DMT is ERC20, IZRC20
By unifying the privacy token interface, we facilitate the development of wrapper and dual-mode protocols, accelerating Ethereum's privacy ecosystem growth.
Discussion
Community discussion: https://ethereum-magicians.org/t/erc-8086-privacy-token/26623
Next Steps I will add the reference implementation and test cases after receiving initial community feedback on the specification.
File ERCS/erc-8085.md
Requires 1 more reviewers from @g11tech, @samwilsn, @xinbenlv
File ERCS/erc-8086.md
Requires 1 more reviewers from @g11tech, @samwilsn, @xinbenlv
The commit ad66988a400495a3d612313d4d21c7df1a57a577 (as a parent of 7bd0d0ac487eac4f8828c71309b656d813ce74dd) contains errors. Please inspect the Run Summary for details.
Hi @SamWilsn @xinbenlv @g11tech,
This PR is now ready for formal review. All previous feedback has been addressed and reference implementations are complete.
π Summary
This PR introduces two related ERC standards:
- ERC-8086: Privacy Token - A minimal interface for native privacy-preserving fungible tokens
- ERC-8085: Dual-Mode Fungible Tokens - Tokens supporting both ERC-20 and privacy modes with seamless conversion
β Completed Items
- [x] All editorial feedback from @abcoathup incorporated (EIP number, title simplification, discussion links)
- [x] CI checks passing (htmlproofer issues resolved in commit 4c96069)
- [x] Reference implementations deployed on Base Sepolia testnet
- [x] All contracts verified on Basescan with public source code
- [x] Working test applications with ZK-SNARK proof generation
- [x] Comprehensive documentation in
/assets/erc-8085/and/assets/erc-8086/
π Live Deployments
Both standards have functional testnet implementations:
ERC-8085 (Dual-Mode Token)
- Test App: https://testdmt.zkprotocol.xyz/
- Factory: 0xf5c16f708777cCb57C3A8887065b4EC02eAf9130
- Implementation: 0x1EFab166064AaD33fcB6074Ec8bA6302013C965C
ERC-8086 (Privacy Token)
- Test App: https://testnative.zkprotocol.xyz/
- Factory: 0x04df6DbAe3BAe8bC91ef3b285d0666d36dda24af
- Implementation: 0xa025070b46a38d5793F491097A6aae1A6109000c
All contracts are deployed on Base Sepolia (Chain ID: 84532) and fully verified.
π¬ Community Discussion
Active discussions on Ethereum Magicians:
π― Key Design Decisions
- ERC-8086 as Foundation: Provides reusable privacy primitives (commitments, nullifiers, Merkle trees)
- ERC-8085 Builds on Top: Combines ERC-20 + ERC-8086 for dual-mode functionality
- Dual-Layer Merkle Tree: 16-level active subtree + 20-level finalized tree (68.7B note capacity)
- Full ERC-20 Compatibility: ERC-8085 is backward compatible with existing DeFi infrastructure
- Application-Layer Solution: Deployable today without protocol changes
π Security Considerations
The proposals include comprehensive security sections covering:
- Nullifier uniqueness enforcement
- Merkle tree integrity (append-only)
- ZK-SNARK proof verification (Groth16)
- Double-spending prevention
- Supply invariant maintenance (for ERC-8085)
π Documentation Structure
assets/erc-8085/
βββ README.md (deployment info, testing guide)
βββ contracts/
β βββ interfaces/ (IDualModeToken, IZRC20)
β βββ reference/ (DualModeToken, Factory)
βββ deployments/base-sepolia.json
assets/erc-8086/
βββ README.md (deployment info, testing guide)
βββ contracts/
β βββ interfaces/ (IZRC20, IVerifier)
β βββ reference/ (PrivacyToken, Factory)
βββ deployments/base-sepolia.json
Request
Please let me know if you need any clarification, additional documentation, or changes to move this proposal forward. I'm happy to address any feedback promptly.
Thank you for your time and consideration!