Skip to main content

Contract Deployments

Official Lunarys Protocol contract addresses on supported networks.

Ethereum Sepolia

ContractAddress
PrivacyPool0xB9afb9c881769BdEa7E4028F84EFf3288B5Cf6d3
Token A (Test)0xa895C68802e2af69718D397629B6d6319473dD73
Token B (Test)0x51f087C58B7a59Ee79709b9C77f26969685c2A07
PositionNFT0x77aacc843b16A9E0845cEEEB7d72387ca0B169d5

Network Details

PropertyValue
Chain ID11155111
CurrencyETH
Block ExplorerSepolia Etherscan
RPChttps://ethereum-sepolia-rpc.publicnode.com

Arbitrum Sepolia

ContractAddress
PoolFactoryTBD
Test TokensTBD

Network Details

PropertyValue
Chain ID421614
CurrencyETH
Block ExplorerArbiscan Sepolia
RPChttps://sepolia-rollup.arbitrum.io/rpc

Verifying Contracts

On Etherscan

npx hardhat verify --network eth-sepolia <CONTRACT_ADDRESS> <CONSTRUCTOR_ARGS>

Example Verification

# Verify PoolFactory
npx hardhat verify --network eth-sepolia 0x... "0xOwnerAddress"

# Verify PrivacyPool
npx hardhat verify --network eth-sepolia 0x... \
"0xTokenA" \
"0xTokenB" \
"3000" \
"0xOwner"

ABI Downloads

Contract ABIs are available in the repository:

cofhe-hardhat-starter/
artifacts/
contracts/
EPool.sol/
PrivacyPool.json
PoolFactory.sol/
PoolFactory.json
PositionNFT.sol/
PositionNFT.json
tokens/
TestFHERC20.sol/
TestFHERC20.json

Using ABIs

import PrivacyPoolABI from './artifacts/contracts/EPool.sol/PrivacyPool.json'
import PoolFactoryABI from './artifacts/contracts/PoolFactory.sol/PoolFactory.json'

const pool = new ethers.Contract(address, PrivacyPoolABI.abi, signer)

Deployment Scripts

Deploy All

npx hardhat deploy-all --network eth-sepolia

This deploys:

  1. PoolFactory
  2. Two TestFHERC20 tokens
  3. A PrivacyPool for the pair
  4. PositionNFT

Deploy Factory Only

npx hardhat deploy-factory --network eth-sepolia

Create New Pool

npx hardhat create-pool \
--factory 0xFactoryAddress \
--tokena 0xTokenA \
--tokenb 0xTokenB \
--fee 3000 \
--network eth-sepolia

Testnet Faucets

Sepolia ETH

Test Tokens

Test tokens can be minted using the owner account:

// Mint 1000 tokens
token.mint(recipientAddress, 1000 * 10**18);

Network Configuration

Hardhat Config

// hardhat.config.ts
networks: {
"eth-sepolia": {
url: "https://ethereum-sepolia-rpc.publicnode.com",
accounts: { mnemonic: process.env.MNEMONIC },
chainId: 11155111
},
"arb-sepolia": {
url: "https://sepolia-rollup.arbitrum.io/rpc",
accounts: { mnemonic: process.env.MNEMONIC },
chainId: 421614
}
}

Frontend Config

// config/chains.ts
export const supportedChains = [
{
id: 11155111,
name: 'Sepolia',
network: 'sepolia',
rpcUrls: {
default: { http: ['https://ethereum-sepolia-rpc.publicnode.com'] }
}
},
{
id: 421614,
name: 'Arbitrum Sepolia',
network: 'arbitrum-sepolia',
rpcUrls: {
default: { http: ['https://sepolia-rollup.arbitrum.io/rpc'] }
}
}
]

Upgradeability

Current contracts are not upgradeable. Future versions may include:

  • Proxy patterns for core contracts
  • Migration tools for liquidity
  • Versioned factory deployments

Mainnet

Mainnet deployments are planned after:

  • Security audit completion
  • Testnet stability verification
  • Community review period

Check the official announcements for mainnet launch details.