Skip to content
ubi.fun
Esc
↑↓navigate↵open⌘Jpreview
On this page

Contracts and events

Every deployed contract on Arc mainnet, and the events to index launches and swaps.

All addresses below are also committed to the repo as deploy artifacts, and the app builds from the same registry, so this page and the running product cannot silently disagree. Explorer: explorer.arc.io.

Arc mainnet (chain id 5042)

Deployment block 12226732. Start your indexer there; nothing of ours exists before it.

Contract Address What it is
PositionManager 0xC780c0f4aAc690908854D351b8bFda2812daeFDc The Uniswap v4 hook. Owns every pool, emits the events below
Flaunch 0x93E5A7565008db9688BA5211Fa552d8b108B9c75 ERC721; one token per launched coin. For coins launched with a creator vault, held for good by the coin’s DividendVault; for earlier coins, held by the creator or escrowed in the split manager
FlaunchZap 0xe07F7cA66EC795592385018Dd998F0B50b8A2834 One-transaction launch entry point
PoolSwap 0x3A61B6E86fde5Fc657a48819837F346C7E2Fffa7 Swap router that forwards your referrer to the hook
V4Quoter 0x4595D3CD7A6D98d83A719934e829db5076fF1d0d Off-chain quoting for v4 pools
FairLaunch 0xdCDADa707264d9e2B0E8c2feC467860C97434Bd4 Fixed-price fair launch phase
WhitelistFairLaunch 0xc35F6b7D4fD3Cf7E881Cc1C967eD8F76d84A6872 Merkle-gated fair launch variant
WhitelistPoolSwap 0x658afD78EDE81f904d091383B437F7FFD64B58F6 PoolSwap variant that proves whitelist membership
BidWall (BurningBidWall) 0xC5DD30802fefab789Cd9b1e835Bd7301a8D23F8A The automated floor bid under every coin
FeeEscrow 0x678f0D1C045e820Ec1d4806749f2629e1035550e Holds withdrawable creator fees
ReferralEscrow 0xf25B9ceAba005CcCb0cefC4e323e6e519F111eB3 Accrues the 5% referrer share, claimable by the referrer
UniversalRewardsDistributor 0x66003091e723778d7D3285BB6c24ff3F0Ddcc7F7 Morpho’s URD; pays the daily USDC holder pool
TreasuryManagerFactory 0xE25C132F379DB49C463328eF427E28DBCbD3a2F0 Deploys fee split managers
AddressFeeSplitManager (impl) 0xde10818344f5ab75ecfA772887cE5751D6Cb91C7 Splits creator revenue across addresses
UsdcMarketCappedPrice 0xc94F51A378aa088B23Bd20EC2e90C6504A4cBC8E Initial price oracle for launches
FeeExemptions 0x83a46Fb9e05770aD88d256fe7B32E6d5F5Bf13D6 Per-address swap fee exemptions
FlaunchFeeExemption 0x09E7679277bc84d1F161a4608F26f707728671D2 Launch fee exemptions
TreasuryActionManager 0x45b69459062F8F89Df48FC5952224e1a3988C76D Approved treasury actions
MerkleAirdrop 0x5847D0A5499e6d81aEd44cbc67F351791507C37c Creator airdrops
XHandleClaims 0xfC38298590893c39E46D319aEd9EC3bf6CB17A3E X-handle split recipients: escrow prediction and claims
IndexerSubscriber 0x2c68B21C9f8b899a662A71dd188C1c919D578a9F On-chain pool id to token lookup registry
FeeEscrowRegistry 0xAA578360497f4aA1EC24FDaA5e774E18408FF504 Maps coins to their fee escrows
PlatformFeeSplitter 0x3CB45926eE3b9381931Bc96AF10d30b630b75A87 Splits its 39% of the fee: 24% to UBI holders, 15% to the protocol
MemecoinImplementation 0xd2737cCC93C511B528f50Ce3745961d01512C4e8 Clone target of every coin launched before block 24240004
MemecoinDividends 0xE9fB2f8a25f572C1c94d02434127bE2b0605b378 Clone target from block 24240004 on: the same token plus in-token USDC dividends. Creator vaults went live at block 24248448; a coin launched in between uses this template but has no vault and trades at the 1.25% base fee. Check the vault, not the template
DividendVault (impl) 0xA9E566b548D5D0203e4d00bc3dFdB4BC38883514 Creator vault: holds a coin’s Flaunch NFT, splits the creator side between holders and recipients. Each coin’s vault is a clone deployed by the TreasuryManagerFactory at launch
HolderShareFeeCalculator 0xe5737916951Fe20235Bddef5a65af5d18406f92E Per-coin swap fee (1.5% to 5%) and the vault check on every swap; unregistered (older) pools keep the 1.25% base fee
BuyBackAction 0x3dF0758Cb99339528E279633c747Ee5f76FB3e2d Treasury action used by DividendVault.buyBackAndBurn
BurnTokensAction 0x1a8a474f3AFA6Bf7Ea4584140388ED63E76cFb77 Treasury action used by DividendVault.buyBackAndBurn
MemecoinTreasuryImplementation 0xAa6E83CC08617915AE767b543Dd55795DDbcD30a Clone target every coin treasury proxies to

v3 on Arc mainnet

v3 tokens run on contracts of their own, deployed at block 26403042; the ones above did not change. Every v3 token mints a fixed 1 billion.

Contract Address What it is
PositionManager 0x01427fC5b40d6Dd3289b0052fB90DBF8dd5Ba5dc The v3 Uniswap v4 hook. Owns every v3 pool
Flaunch 0xe176B60D90b4b036B9E05405b0F0F86C2e624E0a ERC721; one token per v3 coin, held for good by the coin’s DividendVault
FlaunchZap 0x4A08182bffbA288949a909a3794201E92d6723fC One-transaction v3 launch entry point
PoolSwap 0x25CF6E382f0018Ae0dAAAB36Ae14cB831e038749 Swap router that forwards your referrer to the v3 hook
PairFeeCalculator 0x229fA6600F8C4B93B984f96A458cDFC21bC44ae4 Each v3 pool’s buy fee, sell fee and anti-snipe fee
PairedTokenRegistry 0x96E1b6Ae68AbAAAD5705878BBD1E4BA9a2cB1Fd3 The approved pair assets and their price contracts
UniswapV3TwapPriceCalculator 0xe2c5E3AC7F595a7E7dC97d2fdF4dB16e9B4E9044 Gold’s price: the 30-minute average of the Uniswap v3 XAUm/USDC pool
UsdcPairedMarketCappedPrice 0x042E0E714F7Fc2776f229DC44a6F7Be90163E160 Initial price and launch fee for v3 launches
BidWall 0xD97a73A2E6783C84B5eE022d95fdFc356816E16d The automated floor bid under every v3 token; burns what it buys
FeeEscrow 0xF8271402c1021566976B135DeAc282960aCdC779 Holds withdrawable v3 fees, in each pair asset
ReferralEscrow 0x33c0824636F909B13bbD33E1F893C913569beD0b Accrues the referrer share of v3 trades, claimable by the referrer
PlatformFeeSplitter 0xc30C41C1fC41640d1E7838067793e88144483012 Receives the protocol cut of every v3 fee and splits it between UBI holders (through the UniversalRewardsDistributor above) and the protocol
TreasuryManagerFactory 0x8B555dB465Be15d843132C9e90c80A6540C4277D Deploys each v3 token’s DividendVault at launch
DividendVault (impl) 0x1b7a08DB3cCaAF595d8Eb4275EB7B48d996134D9 v3 creator vault: holds a token’s Flaunch NFT and splits its creator earnings between holders and recipients. Each v3 token’s vault is a clone deployed at launch
MemecoinDividends 0xe863B866e1e228b9BEB7D816BEdCAe4AF02949e4 Clone target of every v3 token: dividends paid in the token’s pair asset
MemecoinTreasuryImplementation 0xFcd587E2B2bb6d0b24BdEdeE82A77F8E0D63aA1b Clone target every v3 coin treasury proxies to
FeeExemptions 0xA3477C00437Ac842644253Bc82C301e050f2db1E Per-address swap fee exemptions
FlaunchFeeExemption 0x326082dE92c7EB88e782028275ffA99238858148 Launch fee exemptions
TreasuryActionManager 0x042B923de24da55fBfc61B44124d0423b21B9657 Approved treasury actions
IndexerSubscriber 0xeeAEAB42e897651a822F7dE8371A14b4B69515EF On-chain pool id to token lookup registry
FeeEscrowRegistry 0xC0926274a22f4163BD6dc928aBD2bfEF2C00C9ef Maps v3 coins to their fee escrow
UniversalRewardsDistributor (Underwater) 0xf02FF952AF74A25C10a2420d489323Dd63dcF626 Morpho’s URD for the Underwater pots: receives each vault’s Underwater share, and pays out only through claims against its published roots

Events worth indexing

These are what our own indexer scans. All pool-scoped events are keyed by the v4 poolId (bytes32).

New coin launched (PositionManager):

event PoolCreated(
  bytes32 indexed _poolId,
  address _memecoin,
  address _memecoinTreasury,
  uint256 _tokenId,
  bool _currencyFlipped,
  uint256 _flaunchFee,
  FlaunchParams _params
);

_currencyFlipped tells you whether the memecoin is currency0 or currency1 in the pool key: when false, USDC is currency0; when true, they are swapped. Always honor it when interpreting amounts.

Every swap (PositionManager):

event PoolSwap(
  bytes32 indexed poolId,
  int256 flAmount0, int256 flAmount1, int256 flFee0, int256 flFee1,
  int256 ispAmount0, int256 ispAmount1, int256 ispFee0, int256 ispFee1,
  int256 uniAmount0, int256 uniAmount1, int256 uniFee0, int256 uniFee1
);

The three amount pairs are the fair launch, internal-swap-pool, and Uniswap legs of one swap; sum the pairs for the user-visible totals.

Price and liquidity updates (PositionManager):

event PoolStateUpdated(bytes32 indexed _poolId, uint160 _sqrtPriceX96, int24 _tick, uint24 _protocolFee, uint24 _swapFee, uint128 _liquidity);

Fair launch lifecycle (FairLaunch): FairLaunchCreated(bytes32 indexed _poolId, uint256 _tokens, uint256 _startsAt, uint256 _endsAt) and FairLaunchEnded(bytes32 indexed _poolId, uint256 _revenue, uint256 _supply, uint256 _endedAt).

Referrer earnings (ReferralEscrow): TokensAssigned(bytes32 indexed _poolId, address indexed _user, address indexed _token, uint256 _amount) when your share accrues, TokensClaimed(address indexed _user, address _recipient, address indexed _token, uint256 _amount) when you claim it.

Creator vaults (since block 24248448): PoolRegistered(bytes32 indexed _poolId, uint256 indexed _tokenId, uint24 _fee) on the HolderShareFeeCalculator when a coin launches with a vault (_fee in basis points, 150 to 500); Harvested(uint256 _received, uint256 _toHolders, uint256 _toCreators), CreatorClaimed(address indexed _recipient, uint256 _amount), Renounced() and TreasuryBoughtBackAndBurned(uint256 _spent, uint256 _burned) on each coin’s vault; DividendsDistributed(address indexed _sender, uint256 _amount) and DividendWithdrawn(address indexed _holder, uint256 _amount) on the coin itself. A coin’s vault is the owner of its Flaunch NFT; read memecoin() on it to confirm the pairing.

Holder pool payouts (UniversalRewardsDistributor): Claimed(address indexed account, address indexed reward, uint256 amount). See Verify the payouts.

If you would rather not run an indexer, the REST data API serves the same data.

Was this page helpful?