Skip to content
ubi.fun
Esc
navigateopen⌘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. Held by the creator, or escrowed in the split manager when a launch configures revenue splits
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 the protocol leg of the fee
MemecoinImplementation 0xd2737cCC93C511B528f50Ce3745961d01512C4e8 Clone target every coin proxies to
MemecoinTreasuryImplementation 0xAa6E83CC08617915AE767b543Dd55795DDbcD30a Clone target every coin treasury proxies to

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.

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?