Contract addresses
On VYRE (mainnet, chain 3045)
The launchpad contracts and the exchange. They are ordinary contracts, deployed like any app's: nothing about them is built into the chain.
| Contract | Address | What it does |
|---|---|---|
| VyrePadV2 | 0x3B3f9098575a88E56a22b9e2f93ea40fA9340bC5 | Launches tokens (one transaction each), holds every launch's settings, and pays out each launch's tax (nine tenths to the creator, a tenth to the platform wallet) |
| VyrePoolFactory | 0xdB209972c8E49d55774b65380fBd27547bF13f1E | Creates launch pools (Uniswap v3 design; only the pad adds liquidity). VyrePadV2 is its first approved pool creator |
| SwapRouter | 0x38231F0fa2Bb09Fdb3fD783b110CB5B3a4d3Ad84 | Uniswap v3's router: buys and sells launch tokens, with native USDC wrapped and unwrapped in the same call |
| QuoterV2 | 0x92c33Bef4552fBAb7264A4Da1805743A295FC3FA | Uniswap v3's quoter: prices a trade without making it |
| TickLens | 0xb84a8029967Ace206ad1ed5775B90c7A769c5eA8 | Uniswap v3's pool reader |
| WUSDC | 0xf892e07468eE3cca58795C265de4DfAa3d3b04dc | Wrapped USDC (ERC-20, 18 decimals), what launch pools trade against |
Pool addresses are CREATE2 addresses from the pool deployer 0x6ed298529a93f5Cf719fe4bB668aA7828f8a3bDe with fee key 10000 (1%: the key pools are found by; a pool's actual fees are its buy and sell fees).
There is no fee splitter, app router or referrals contract with VyrePadV2: a trade pays the creator's tax and nothing else, and goes through the SwapRouter (how).
Not used: mainnet's first deployment
Mainnet was first set up with an earlier launch contract and its own factory. The contracts below are not used any more: send nothing to them, and do not build on them. They are listed so that nobody takes them for the current ones.
| Contract | Address |
|---|---|
| VyrePad (first launch contract) | 0x5eF687Ea7DB6B25071Fb1f4869cE016Fa3F46171 |
| VyrePoolFactory | 0xD0Ea487BE03A98c34bD007bAc6db338923A2b21C |
| Pool deployer | 0xD6F530468BE41Ec6d40cA51ED1b067b83ee1FAa5 |
| VyreFeeSplitter | 0x7A8B3f677682d5f8e4d77C4a9E619127565a980b |
| VyreAppRouter | 0xE7cB5622b8a30e70f04152b64Dfffd448F5F941E |
| VyreReferrals | 0x4d214988470834882AD31e45d0f26430871D3Fe4 |
| SwapRouter | 0x332b596c30847B1b45b85079Fd33eD1b0f1c2FA7 |
| QuoterV2 | 0x8B616A9e04E372Bbc5C8F70388890fc0725D0DAd |
| TickLens | 0x2dEc4b851c1E3F593a0FaC01Fc8A910671A60cd1 |
On Arc (chain 5042): the bridge
| Contract | Address |
|---|---|
| Rollup | 0x9a1ae90D33AeA2c81292905370FE1E66b5357AA0 |
Inbox (deposits: depositEth()) | 0xC0190ec9bba882aE3452c6187C8D5636D36db299 |
| Outbox (withdrawal claims) | 0xA14a1dbBcFd6ACf538c606e3F3AC6DeA0b882fa9 |
| Bridge (holds deposited USDC) | 0x28BeF76aa877500e00615B77E8e4bE54E89DBB71 |
| Sequencer inbox (batches) | 0x6ED18AeE76f0B54490eEA2C7c6e2beD83b2401FD |
| Upgrade executor | 0xe0B3B65E40F4d25D7c515b595059AF7AC0f2AC70 |
Created at Arc block 26485289. Deposits go in through the Inbox; withdrawals are claimed from the Outbox (how).
Standard contracts on VYRE
| Contract | Address |
|---|---|
| Multicall3 | 0x2055A30B00555e7cAd48b1756eac4f917781489b |
Multicall3 is the standard contract, at its own address: the usual 0xcA11bde05977b3631167028862bE2a173976CA11
comes from a pre-signed deployment whose fixed gas limit can't cover VYRE's data fee. Tell your library where it is
(the SDK's vyreMainnet does).
On VYRE Testnet (chain 7357)
The launchpad contracts on the testnet, deployed 2026-09-28. This is the testnet's own deployment, with its own addresses.
| Contract | Address | What it does |
|---|---|---|
| VyrePad | 0x60A2E571f0272151a23Cd0d5EC814A67fBf9bf34 | Launches tokens (one transaction each) and holds every launch's settings |
| VyreAppRouter | 0xbf593CB56983688FB279DDDA6f582A19cFAb38FD | Buys and sells launch tokens for apps, and pays promoters |
| VyreReferrals | 0x818acB2F48CCBe090F41a2cb5c923186FAba04b7 | Records which promoter brought each wallet |
| VyreFeeSplitter | 0xcd874cEDA1A51ed7F18b2358F6A399aD81f9BCd5 | Splits the platform fee between VYRE, partner launchpads and promoters |
| VyrePoolFactory | 0x0Ea6D827B02E6d52b9860B84C696E1D2186cb553 | Creates launch pools (Uniswap v3 design; only the pad adds liquidity) |
| SwapRouter | 0xF82D41955e7126bBBE158C43E48ef3e54D1606B6 | Uniswap v3's router, for these pools |
| QuoterV2 | 0x41A83F6CcCEC9FfE9ab28e82E5C92B16056d33f4 | Uniswap v3's quoter: prices a trade without making it |
| TickLens | 0xF0238D55352dDEe2A054487a7134165dF763eDEB | Uniswap v3's pool reader |
| WUSDC | 0x3604b49523F950f832AA7d4Fa11Fdc3C0a541913 | Wrapped USDC (ERC-20, 18 decimals), what launch pools trade against |
Pool addresses are CREATE2 addresses from the pool deployer 0x1540BD767355CE96EB0c4210972000f8b2B1ad43 with init code hash
0x7a615296d509ff72047da20e91c603b443f689eafab5da04fa8c46d158a372d7 and fee key 10000 (1%).
On Arc Testnet (chain 5042002): the bridge
| Contract | Address |
|---|---|
| Rollup | 0x38Dc065eA29326359ddD23766F588191210A8665 |
Inbox (deposits: depositEth()) | 0x52f90cb0ace79963736b1DCEb07587F780F47d98 |
| Outbox (withdrawal claims) | 0xCffF3dF492fDF6c446736CAd53b1E0e436dD56F0 |
| Bridge (holds deposited USDC) | 0xa0CC23059e5789De9a7a9335bfA6d299a86d9b12 |
| Sequencer inbox (batches) | 0x1DC82fEAeD8dACa8c97A693fb82cb6CE3a9b2dCd |
| Upgrade executor | 0xb997412686571B785675E86afba8D50A7e668218 |
Created at Arc testnet block 64427769. Deposits go in through the Inbox; withdrawals are claimed from the Outbox (how).
Precompiles
| Precompile | Address | Useful for |
|---|---|---|
| ArbSys | 0x0000000000000000000000000000000000000064 | arbBlockNumber(), withdrawEth(destination) |
| ArbGasInfo | 0x000000000000000000000000000000000000006C | Gas prices, including the data fee |
| NodeInterface | 0x00000000000000000000000000000000000000C8 | gasEstimateComponents (splits an estimate into execution and the data fee); only through eth_call / eth_estimateGas |
| ArbRetryableTx | 0x000000000000000000000000000000000000006E | Retryable deposit messages from the bridge |
Face ID wallets
Smart wallets owned by passkeys (SDK): Coinbase's open-source Smart Wallet v1.1, built by VYRE from its published source (the compiled code is not Coinbase's own deployment, so its code hash differs from theirs), and ERC-4337's EntryPoint v0.6, the published code byte for byte.
| Contract | Address |
|---|---|
| EntryPoint v0.6 | 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 (its usual address) |
| Smart Wallet factory (v1.1) | 0x6Ad9c517131Fc549C2AE301FEf9eabF39761FFBd |
| Smart Wallet implementation (v1.1) | 0x2Cd07e4223f94F133C67D7a0a23af13D99875F51 |
The wallet's own contracts aren't at Coinbase's addresses: those came through a deployer that needs a transaction
pre-signed for each chain. They went through the standard deterministic deployer instead, so the factory (whose code
holds the implementation's address) has an address of its own. Passkey signatures are checked with the P-256
precompile (0x0000000000000000000000000000000000000100, RIP-7212).
Standard contracts
| Contract | Address |
|---|---|
| Multicall3 | 0x1c508A908FB0DAFE33721E4e8e627D57D94964fF (verified; created in block 92) |
Multicall3 is the standard contract, at its own address: the usual 0xcA11bde05977b3631167028862bE2a173976CA11
comes from a pre-signed deployment whose fixed gas limit can't cover VYRE's data fee. Tell your library
where it is (the SDK's vyreTestnet does, so viem's batch: { multicall: true } works).
