noxa — instant listing
Mainnet 4663 only. One transaction, one confirmation, trading from block one.
launchToken((string name, string symbol, string logo, string description,
(string telegram, string twitter, string discord, string website, string farcaster)
socials, address devWallet), uint256 launchConfigId, uint256 dexId, bytes32 salt)
deploys the ERC-20, creates a Uniswap v3 pool via the launcher's configured DEX (currently
the WETH pair at the 1% fee tier — read live from getDexConfig(0)), seeds
single-sided liquidity, and permanently locks the LP NFT. There is no bonding curve and no
graduation step.
The ABI was extracted from NOXA's own production frontend bundle
(fun.noxa.fi/assets/index-*.js). Proof: encoding it with the exact inputs
decoded from a real, successful launch tx
(ROBINDOG launch)
reproduces that transaction's calldata byte-for-byte, selector 0x686399cb
included — confirmed by round-tripping the decode through viem's own
decodeFunctionData → encodeFunctionData, not hand-transcribed.
Launch fee: read live from launchFactory.launchFee() (0.0005 ETH when this
was built). launchEnabled() is also read live before every preflight — NOXA
can pause new launches on-chain, and this rail surfaces that as a blocker rather than
letting the transaction revert.
odyssey — instant and bonding-curve factories
Mainnet 4663 only. Two independent factories, two different launch shapes.
Instant factory
One payable call, f(string name, string symbol, uint256 buyAmount), selector
0x548eb31b. The invariant msg.value === buyAmount held across
every sampled create — the initial buy folds directly into creation, and lists to a
Uniswap v3 pool immediately. Proven byte-for-byte against two real txs (a 0.03 ETH
buy and a zero-buy creation).
Bonding-curve factory
A native-ETH virtual-reserve curve. Creation — f(string name, string symbol,
uint256, uint256), selector 0x56f698a3 — is a separate zero-value call
from the initial buy; every sampled create replayed the same two trailing constants
(0.5e18, 0), so this rail replays them rather than inventing new
values. Buying is buy(address token, uint256 minTokensOut) payable, selector
0xcce7ec13.
TokenCreated emission on the bonding
factory (47 logs, eth_getLogs from block 0) found four
distinct create selectors, not one: 0x8680ce63 (22 uses, an unexplained extra
numeric parameter with no consistent relationship to msg.value),
0x59a35641 (20 uses, requires a 65-byte trailing ECDSA signature from an
off-chain backend signer this rail has no way to produce), 0xc56f3820
(3 uses, undecoded), and 0x56f698a3 (2 uses — the one this rail ships).
Shipping either majority selector would mean guessing a signature scheme or an unverified
parameter, which this build refuses to do. The Odyssey publishing a verified ABI
or an official SDK is the only thing that would change this.
reflectionFactory and legacyFactory were not sampled for
creates during this build and are intentionally not exposed.
direct — clean-room ERC-20 + Uniswap v3
Mainnet AND testnet. No launchpad, no ABI reverse-engineering — just audited-pattern code this project wrote and compiled itself.
Deploys HoodToken — OpenZeppelin v5 ERC20, fixed supply minted
once in the constructor, no mint function anywhere in the contract, no owner, nothing to
renounce because there is nothing privileged to begin with. Then creates + initializes a
Uniswap v3 pool at the configured fee tier, seeds a full-range LP position, and burns or
time-locks the LP position NFT per config (HoodLPLocker — a permissionless
timelock that never touches a locked position before its unlock timestamp, no admin
override exists).
Every deployed contract is submitted for Blockscout source verification as the final
step, using a self-contained standard-json-input embedded in the compiled artifact at
build time (npm run compile:contract) — the exact input that produced the
deployed bytecode, replayed byte-for-byte, not reconstructed from a template.
| Config | Default | Notes |
|---|---|---|
totalSupply | 1,000,000,000 | Whole tokens; 18 decimals applied |
feeTier | 10000 (1%) | Matches NOXA's default pairing behavior on this chain |
lpSupplyBps | 10000 (100%) | Fraction of supply deposited as the LP's token side |
lpDisposition | burn | burn · lock (180-day timelock) · keep |