Documentation · Reference
Addresses
The canonical list of GENE contract addresses, what each entry is fixed by, and the third-party contracts GENE depends on.
| Deployment | Pre-launch. Addresses will be listed here at launch. |
|---|---|
| Code | RC4 frozen audit candidate: tag rc4-audit-candidate, commit aca5fcd. Genome VERSION 4. |
| Internal gate | 5,920 production tests, 0 failed, 0 skipped; 53,929 attack scenarios on the production code; in every one the protocol ended at or above its no-attack baseline. Verdict: ready for external audit. |
| External audit | Next step. The code is frozen for it; the report will be linked here when it is published. |
| Bug bounty | To be announced. |
| Security contact | To be announced. |
| Admin powers | None after launch(): no owner, no upgrade path, no function that removes liquidity. Before launch, the launcher alone decides when the pool opens. |
| Outside GENE | Uniswap v4's protocol fee is controlled by Uniswap governance, not by GENE. If switched on (up to 0.1% per direction), the total fee becomes about 1.099% and that share never reaches GENE's positions. |
| Known risks | Published in full: Known limitations. |
#Deployment status
Addresses appear here after deployment. The code they will run is frozen at tag rc4-audit-candidate, commit aca5fcd3bbc9ecb1026de58bea431d406d8ecfff.
#What this page will list after deployment
| Item | How it is fixed | Source |
|---|---|---|
| GeneHook address | Mined by CREATE2 so that its low 14 bits are 0x2AC0 and its top byte is not 0x91; depends on the init code, which includes the PoolManager and launcher addresses |
Deploy.s.sol:44-45; GeneHook.sol:224-229 |
| GeneToken address | Deployed by the GeneHook constructor; read token() on the hook |
GeneHook.sol:162, GeneHook.sol:233-234 |
| poolId | keccak256(abi.encode(poolKey)); read poolId() on the hook |
GeneHook.sol:165, GeneHook.sol:243-244 |
| Uniswap v4 PoolManager | The manager constructor argument; read poolManager() on the hook |
GeneHook.sol:161, GeneHook.sol:231 |
| Uniswap v4 StateView | The periphery read contract used to query pool state | LaunchRehearsal.t.sol:104 |
| Launcher | The launcher_ constructor argument; read launcher() on the hook |
GeneHook.sol:163, GeneHook.sol:232 |
| Deploy transaction | The CREATE2 transaction that created the hook and emitted Genesis |
GeneHook.sol:247 |
| Launch transaction | The launch() transaction that initialized the pool and emitted Launched |
GeneHook.sol:252-272 |
| Source commit | The commit whose bytecode matches the deployed runtime, checked as described in Verify the deployment | tag rc4-audit-candidate (aca5fcd) |
| genomeHash | Read genomeHash() on the hook; it must equal 0x39c130f616c32abfb40f8ab51eb54544cffd3e0d99602c71dc336bc8083c36ae |
GeneHook.sol:164 |
Read token(), poolId() and the other immutables from the listed hook rather than copying them from elsewhere.
GeneLens is not part of the protocol. It is stateless, GeneHook never calls it, and anyone can deploy a copy or decode the same storage directly, so no GeneLens address is canonical (GeneLens.sol:12-16).
#Dependencies
These third-party contracts are not GENE contracts. GENE does not control them. They are listed with the GENE source that names them.
| Contract | Network | Address | Role | Source |
|---|---|---|---|---|
| Uniswap v4 PoolManager | Ethereum mainnet | 0x000000000004444c5dc75cB358380D2e3dE08A90 |
The singleton that holds the pool, its liquidity and the hook's ERC-6909 claims; the deploy script's default manager |
Deploy.s.sol:14, Deploy.s.sol:34; LaunchRehearsal.t.sol:98 |
| Uniswap v4 StateView | Ethereum mainnet | 0x7fFE42C4a5DEeA5b0feC41C94C136Cf115597227 |
Read-only pool state for off-chain readers | LaunchRehearsal.t.sol:104 |
| Deterministic CREATE2 deployer (Arachnid) | Ethereum mainnet | 0x4e59b44847b379578588920cA78FbF26c0B4956C |
Deploys GeneHook at a mined address | Deploy.s.sol:31-33; LaunchRehearsal.t.sol:99 |
The launch is to be submitted through a private bundle or private RPC, not the public mempool, because GENE has no anti-snipe surcharge and transaction ordering is the only launch-block protection available (Launch.s.sol:4-10).
Sources (9)
- script/Deploy.s.sol:11-14
- script/Deploy.s.sol:31-34
- script/Deploy.s.sol:44-45
- script/Launch.s.sol:4-10
- src/GeneHook.sol:161-166
- src/GeneHook.sol:224-247
- src/GeneHook.sol:252-272
- src/GeneLens.sol:12-16
- test/rehearsal/LaunchRehearsal.t.sol:98-104
Paths are relative to the GENE repository at tag rc4-audit-candidate (aca5fcd).