Deployed Contract Addresses
All references below correspond to the October 25, 2025 complete redeployment of Lunarys on Ethereum Sepolia running Zama's fhEVM stack. Every contract is verified on Etherscan and licensed under BUSL‑1.1.
Network Snapshot
- Chain: Ethereum Sepolia (
11155111) - Deployer:
0x026ba0AA63686278C3b3b3b9C43bEdD8421E36Cd - RPC:
https://sepolia.infura.io/v3/<API_KEY> - Explorer: sepolia.etherscan.io
- License: BUSL-1.1 (Business Source License 1.1)
- Compiler: Solidity 0.8.27 (Optimizer: 800 runs, Via-IR: Yes, EVM: Cancun)
- Last update: 2025-10-26
- Verification Status: 17/17 contracts verified (100%)
Token Suite (ERC7984 Confidential Tokens)
| Token | Symbol | Address | Type | Supply | Decimals | Explorer |
|---|---|---|---|---|---|---|
| Lunarys Token | LUN | 0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70 | CERC20 | 1,000,000 | 6 | View |
| Zama Token | ZAMA | 0x7778E67d9fFec15e551Ef8c73B6608083B010305 | CERC20 | 100,000,000 | 6 | View |
| Encrypted USD | eUSD | 0xc56929E0aeC02cf7679ac53F2cfD5a85Aa33A1ef | CERC20 | 1,000,000,000 | 6 | View |
| Encrypted Bitcoin | eBTC | 0x538Ff24472171adBd61276CCf2978aB8589A9314 | CERC20 | 21,000,000 | 6 | View |
All tokens use ERC7984 (Confidential ERC20) standard with FHE encryption. Balances and transfers are fully encrypted on-chain. The LUN token also serves as the governance token through the ConfidentialGovernanceToken contract.
DAO & Treasury Stack
| Contract | Address | Purpose | Explorer |
|---|---|---|---|
| ConfidentialGovernanceToken | 0x892571fe321d148d613a41B5f49E3F725B05ae7b | Dedicated ERC7984 voting token (max supply 1M, emission 0.1 LUN/s) | View |
| ConfidentialGovernor | 0xa6585aA902083E7e3386690e9d944564AB82a92f | Encrypted governance core (proposal threshold 10k, quorum 50k) | View |
| ConfidentialTimelock | 0x2D6C594512cEBe7Ca09a63243Fd6599Ed6711F1a | 2‑day execution delay with permissionless EXECUTOR role | View |
| ConfidentialTreasury | 0x4080754E9fc917dAdDcdD98F065bFE6A9C7DD04d | Encrypted asset treasury managed exclusively by the timelock | View |
| ConfidentialEmissionsController | 0x2db86E1EfC1a12F49f5773CAccFC6E4841759f0c | Streams LUN token incentives to LP pools and DAO programs | View |
Governance Parameters
export const governanceConfig = {
votingDelay: 86_400, // 1 day
votingPeriod: 259_200, // 3 days
proposalThreshold: 10_000n * 10n ** 6n, // 10,000 LUN
quorumVotes: 50_000n * 10n ** 6n, // 50,000 LUN
timelockDelay: 172_800, // 2 days
gracePeriod: 604_800, // 7 days
emissionRate: 100_000n, // 0.1 LUN/second
maxSupply: 1_000_000n * 10n ** 6n, // 1,000,000 LUN
};
The DAO system has been deployed and initialized. The deployer address currently holds admin roles. These will be transferred to the Timelock contract through a governance proposal after initial testing is complete.
DEX Infrastructure
Factory, Router & NFT
| Contract | Address | Description | Status |
|---|---|---|---|
| PositionNFT | 0x23Ead6e75e93152BBF18b88C75E0AC8F8DE6880d | ERC721 NFT representing liquidity positions with confidential amounts (3D visualizations) | Verified |
| PrivacyPoolFactory | 0xd5CA10930fe9EF7b967e7BE6564A758cad68D13F | Deploys deterministic confidential pools, guarantees unique (tokenA, tokenB, fee) tuples | Verified |
| UniversalRouter | 0x7173D66f22edDD92e45F9CddB53fDe7A4f59B1B6 | Pool discovery, route validation, and multi-hop path planning | Verified |
All liquidity positions are now represented as ERC721 NFTs with confidential amounts encrypted using FHE. Each NFT includes metadata for 3D visualization in the frontend and stores encrypted token0Amount, token1Amount, and liquidity values.
Liquidity Pools (0.3% Fee Tier)
| Pool Pair | Address | Token0 | Token1 | Initialized | Liquidity | Explorer |
|---|---|---|---|---|---|---|
| LUN/eUSD | 0x028c34bCF44237f57E950509e60E629462B5987E | LUN | eUSD | Yes | 10k LUN, 10k eUSD | View |
| LUN/eBTC | 0x3C0b75f9C7b21080339fe06E3b75622E550ea1dD | eBTC | LUN | Yes | 0.1 eBTC, 10k LUN | View |
| eUSD/eBTC | 0x2D5272d8C97602c26675273D57c6dAF74597D4AA | eBTC | eUSD | Yes | 0.1 eBTC, 10k eUSD | View |
| ZAMA/eUSD | 0x96ab5B38Ef9b34627B1B3aDef2dC60D8BA7a588a | ZAMA | eUSD | Yes | 10k ZAMA, 10k eUSD | View |
| ZAMA/LUN | 0x6F9B06259fc63752eB5a6190417aBa7Fea1Cb760 | ZAMA | LUN | Yes | 10k ZAMA, 10k LUN | View |
All pools currently operate with a 3000 fee parameter (0.30%). Pools use PrivacyPool contract implementation with full FHE encryption for liquidity positions and swap amounts. Each pool is fully initialized with bootstrap liquidity and ready for trading. Hook slots are available for LP accounting and analytics modules. All liquidity positions are represented as ERC721 NFTs with 3D visualization support.
Pool Architecture Details
Each pool implements:
- Constant Product AMM (x * y = k)
- FHE-encrypted reserves (hidden from public view)
- Two-phase swap mechanism with decryption oracle
- Confidential liquidity positions (LP shares encrypted)
- Hook system for extensibility (before/after swap, liquidity operations)
Integration Snippets
Frontend / SDK Mapping
export const CONTRACTS = {
11155111: { // Sepolia
tokens: {
LUN: "0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70",
ZAMA: "0x7778E67d9fFec15e551Ef8c73B6608083B010305",
eUSD: "0xc56929E0aeC02cf7679ac53F2cfD5a85Aa33A1ef",
eBTC: "0x538Ff24472171adBd61276CCf2978aB8589A9314",
},
dao: {
GovernanceToken: "0x892571fe321d148d613a41B5f49E3F725B05ae7b",
Governor: "0xa6585aA902083E7e3386690e9d944564AB82a92f",
Timelock: "0x2D6C594512cEBe7Ca09a63243Fd6599Ed6711F1a",
Treasury: "0x4080754E9fc917dAdDcdD98F065bFE6A9C7DD04d",
EmissionsController: "0x2db86E1EfC1a12F49f5773CAccFC6E4841759f0c",
},
dex: {
PositionNFT: "0x23Ead6e75e93152BBF18b88C75E0AC8F8DE6880d",
Factory: "0xd5CA10930fe9EF7b967e7BE6564A758cad68D13F",
UniversalRouter: "0x7173D66f22edDD92e45F9CddB53fDe7A4f59B1B6",
},
pools: {
LUN_eUSD: "0x028c34bCF44237f57E950509e60E629462B5987E",
LUN_eBTC: "0x3C0b75f9C7b21080339fe06E3b75622E550ea1dD",
eUSD_eBTC: "0x2D5272d8C97602c26675273D57c6dAF74597D4AA",
ZAMA_eUSD: "0x96ab5B38Ef9b34627B1B3aDef2dC60D8BA7a588a",
ZAMA_LUN: "0x6F9B06259fc63752eB5a6190417aBa7Fea1Cb760",
},
},
} as const;
Hardhat Task Examples
Check Token Balance
npx hardhat cerc20:balance \
--token 0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70 \
--account 0x026ba0AA63686278C3b3b3b9C43bEdD8421E36Cd \
--network sepolia
Add Liquidity to Pool
npx hardhat pools:add-liquidity \
--pool 0x975Be3F050026823394D299799A4d1B502716944 \
--token-a 0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70 \
--token-b 0xc56929E0aeC02cf7679ac53F2cfD5a85Aa33A1ef \
--amount-a 1000000 \
--amount-b 1000000 \
--network sepolia
Register Pool for Emissions
npx hardhat dao:register-pool \
--controller 0x2db86E1EfC1a12F49f5773CAccFC6E4841759f0c \
--pool 0x975Be3F050026823394D299799A4d1B502716944 \
--weight 100 \
--network sepolia
Hardhat Network Configuration
import { HardhatUserConfig } from "hardhat/config";
const config: HardhatUserConfig = {
networks: {
sepolia: {
url: process.env.SEPOLIA_RPC_URL || "https://sepolia.infura.io/v3/<API_KEY>",
accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
chainId: 11155111,
},
},
etherscan: {
apiKey: process.env.ETHERSCAN_API_KEY,
},
};
export default config;
Web3.js / Ethers.js Provider Example
import { ethers } from "ethers";
import { CONTRACTS } from "./constants";
// Setup provider
const provider = new ethers.JsonRpcProvider(
"https://sepolia.infura.io/v3/" + process.env.INFURA_KEY
);
// Connect to contracts
export const governanceToken = new ethers.Contract(
CONTRACTS[11155111].dao.GovernanceToken,
governanceTokenAbi,
provider
);
export const governor = new ethers.Contract(
CONTRACTS[11155111].dao.Governor,
governorAbi,
provider
);
export const factory = new ethers.Contract(
CONTRACTS[11155111].dex.Factory,
factoryAbi,
provider
);
export const router = new ethers.Contract(
CONTRACTS[11155111].dex.UniversalRouter,
routerAbi,
provider
);
export const positionNFT = new ethers.Contract(
CONTRACTS[11155111].dex.PositionNFT,
positionNFTAbi,
provider
);
Create Encrypted Input Example
import { createFhevmInstance } from "fhevmjs";
// Initialize fhEVM instance
const fhevm = await createFhevmInstance({
chainId: 11155111,
publicKey: await provider.call({
to: "0x000000000000000000000000000000000000005d",
}),
});
// Create encrypted input for swap
const input = fhevm.createEncryptedInput(
CONTRACTS[11155111].pools.LUN_eUSD,
userAddress
);
input.add64(amountIn); // Encrypt the swap amount
const encryptedAmount = input.encrypt();
// Execute confidential swap
const tx = await poolContract.confidentialSwap(
tokenIn,
tokenOut,
encryptedAmount.handles[0],
encryptedAmount.inputProof,
minAmountOut,
deadline
);
Verification & Source Code
Compilation Settings
{
"compiler": {
"version": "0.8.27",
"settings": {
"optimizer": {
"enabled": true,
"runs": 800
},
"viaIR": true,
"evmVersion": "cancun",
"metadata": {
"bytecodeHash": "none"
}
}
}
}
Verification Status
| Contract Type | Count | Verified | Manual Verification Required |
|---|---|---|---|
| Tokens | 4 | 4 | 0 |
| DAO System | 5 | 5 | 0 |
| DEX Core | 3 | 3 | 0 |
| Pools | 5 | 5 | 0 |
| Total | 17 | 17 | 0 |
- All contracts use SPDX-License-Identifier: BUSL-1.1
- 17/17 contracts are fully verified on Sepolia Etherscan
- All contracts deployed October 26, 2025 with NFT support
- Use "Read Contract" and "Write Contract" tabs on Etherscan for ad-hoc queries
Deployment Scripts
Full Deployment
npx hardhat full-deploy --network sepolia
Verify All Contracts
npx hardhat run scripts/verify-all-contracts.ts --network sepolia
Check Deployment Summary
cat deployments-summary.json
Security Considerations
Encrypted State
All token balances, liquidity positions, and swap amounts are fully encrypted using Zama's fhEVM technology. Only authorized parties can decrypt their own positions using their private keys.
Decryption Oracle
Swaps use a two-phase mechanism:
- Phase 1: Submit encrypted swap with encrypted amount
- Phase 2: Oracle decrypts and settles the swap (async)
This ensures price discovery happens without revealing individual trader amounts.
Access Control
- DAO contracts: Admin roles will be transferred to Timelock after testing
- Pools: No admin functions (fully permissionless)
- Factory: Immutable deployment logic
- Router: Stateless helper contract
Roadmap & Mainnet
Current Status: Sepolia Testnet
Sepolia remains the canonical integration target for development and testing. All features are fully functional and available for integration.
Upcoming Milestones
- Complete deployment of all core contracts
- Verify contracts on Etherscan (17/17 contracts)
- Add initial liquidity to all pools (all pools bootstrapped)
- Deploy PositionNFT with 3D visualization support
- ⏳ Launch governance proposals for DAO parameter tuning
- ⏳ Deploy analytics dashboard and block explorer integration
- ⏳ Mainnet deployment (Ethereum, Polygon, Arbitrum, Optimism)
Mainnet Deployment Plan
Mainnet deployments are staged for after fhEVM production support is finalized on target networks. The deployment process will follow the same deterministic approach with identical compiler settings.
Target Networks:
- Ethereum Mainnet
- Polygon zkEVM
- Arbitrum One
- Optimism
- Base
Support & Resources
Documentation
- Protocol Overview: /docs/protocol-overview
- Swap Mechanism: /docs/swap-mechanism
- Liquidity Provision: /docs/liquidity-provision
- DAO System: /docs/dao-system
- Privacy Pool: /docs/privacy-pool
- Universal Router: /docs/universal-router
Community & Support
- Website: lunarys.io
- Documentation: docs.lunarys.io
- GitHub: github.com/lunarys-dex
- Discord: discord.gg/lunarys
- Twitter: @LunarysDEX
- Email: support@lunarys.io
Developer Resources
- Hardhat Template: Clone and start building
- Task Library: Full CLI for contract interactions
- Test Suite: Comprehensive coverage of all features
- Deployment Scripts: Automated deployment and verification
Quick Reference
Key Addresses
PositionNFT: 0x23Ead6e75e93152BBF18b88C75E0AC8F8DE6880d
Factory: 0xd5CA10930fe9EF7b967e7BE6564A758cad68D13F
Router: 0x7173D66f22edDD92e45F9CddB53fDe7A4f59B1B6
Governor: 0xa6585aA902083E7e3386690e9d944564AB82a92f
LUN: 0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70
Network Info
Chain ID: 11155111
RPC: https://sepolia.infura.io/v3/<KEY>
Explorer: https://sepolia.etherscan.io
Important Constants
Fee Tier: 3000 (0.3%)
Voting Delay: 86,400 seconds (1 day)
Voting Period: 259,200 seconds (3 days)
Timelock Delay: 172,800 seconds (2 days)
Proposal Threshold: 10,000 LUN
Quorum: 50,000 LUN
Last updated: October 26, 2025 Deployment: Complete Fresh Deployment with NFT Support Network: Ethereum Sepolia (11155111) All pools initialized and ready for trading