Skip to main content

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)

TokenSymbolAddressTypeSupplyDecimalsExplorer
Lunarys TokenLUN0xac4d3C0f90A6a4B5b8ae16AFd78F1EEcF238eD70CERC201,000,0006View
Zama TokenZAMA0x7778E67d9fFec15e551Ef8c73B6608083B010305CERC20100,000,0006View
Encrypted USDeUSD0xc56929E0aeC02cf7679ac53F2cfD5a85Aa33A1efCERC201,000,000,0006View
Encrypted BitcoineBTC0x538Ff24472171adBd61276CCf2978aB8589A9314CERC2021,000,0006View
Token Details

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

ContractAddressPurposeExplorer
ConfidentialGovernanceToken0x892571fe321d148d613a41B5f49E3F725B05ae7bDedicated ERC7984 voting token (max supply 1M, emission 0.1 LUN/s)View
ConfidentialGovernor0xa6585aA902083E7e3386690e9d944564AB82a92fEncrypted governance core (proposal threshold 10k, quorum 50k)View
ConfidentialTimelock0x2D6C594512cEBe7Ca09a63243Fd6599Ed6711F1a2‑day execution delay with permissionless EXECUTOR roleView
ConfidentialTreasury0x4080754E9fc917dAdDcdD98F065bFE6A9C7DD04dEncrypted asset treasury managed exclusively by the timelockView
ConfidentialEmissionsController0x2db86E1EfC1a12F49f5773CAccFC6E4841759f0cStreams LUN token incentives to LP pools and DAO programsView

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
};
Initialization Status

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

ContractAddressDescriptionStatus
PositionNFT0x23Ead6e75e93152BBF18b88C75E0AC8F8DE6880dERC721 NFT representing liquidity positions with confidential amounts (3D visualizations)Verified
PrivacyPoolFactory0xd5CA10930fe9EF7b967e7BE6564A758cad68D13FDeploys deterministic confidential pools, guarantees unique (tokenA, tokenB, fee) tuplesVerified
UniversalRouter0x7173D66f22edDD92e45F9CddB53fDe7A4f59B1B6Pool discovery, route validation, and multi-hop path planningVerified
NFT-Enhanced Liquidity

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 PairAddressToken0Token1InitializedLiquidityExplorer
LUN/eUSD0x028c34bCF44237f57E950509e60E629462B5987ELUNeUSDYes10k LUN, 10k eUSDView
LUN/eBTC0x3C0b75f9C7b21080339fe06E3b75622E550ea1dDeBTCLUNYes0.1 eBTC, 10k LUNView
eUSD/eBTC0x2D5272d8C97602c26675273D57c6dAF74597D4AAeBTCeUSDYes0.1 eBTC, 10k eUSDView
ZAMA/eUSD0x96ab5B38Ef9b34627B1B3aDef2dC60D8BA7a588aZAMAeUSDYes10k ZAMA, 10k eUSDView
ZAMA/LUN0x6F9B06259fc63752eB5a6190417aBa7Fea1Cb760ZAMALUNYes10k ZAMA, 10k LUNView
Pool Configuration

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 TypeCountVerifiedManual Verification Required
Tokens440
DAO System550
DEX Core330
Pools550
Total17170
Verification
  • 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:

  1. Phase 1: Submit encrypted swap with encrypted amount
  2. 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

  1. Complete deployment of all core contracts
  2. Verify contracts on Etherscan (17/17 contracts)
  3. Add initial liquidity to all pools (all pools bootstrapped)
  4. Deploy PositionNFT with 3D visualization support
  5. ⏳ Launch governance proposals for DAO parameter tuning
  6. ⏳ Deploy analytics dashboard and block explorer integration
  7. ⏳ 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

Community & Support

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