Docs: Pangea v4: how a coin launches today

Every new launch is a v4 launch. A v4 coin lives on up to six chains: Robinhood Chain, Base, Ethereum, BNB Chain (BSC), Solana and Elysium. The four EVM chains and Solana carry LayerZero and Hyperlane; Elysium carries Hyperlane only. This tab is all of v4: creating a coin, chains and pairs, fees and holder rewards, opening a chain later, handing over, launching from your own wallet, the Bundle Kit, bridging, contracts and the API. Coins launched before v4 are in the v3 and v2 tabs.

  • One coin on up to six chains, one price on all of them. Each chain has its own 1B tokens, minted when that chain opens.
  • Every chain has one shared Pangea bridge, the same for every v4 coin.
  • Liquidity is locked on every chain: no contract function or program instruction withdraws it.
View as Markdown
Sheet AThe shape
A.1

Pangea v4

A.1

Pangea v4 is how a coin launches today. One coin lives on up to six chains at once: Ethereum, Base, BNB Chain, Robinhood Chain, Solana, Elysium. It keeps one price on all of them, because the same coin moves between chains and arbitrage closes any gap.

  • Each chain has its own 1B tokens, minted once when that chain opens. Supply per chain →
  • You open the chains you want now, and the others later, at a price you choose. Opening a chain later →
  • Every chain has one shared Pangea bridge, and every v4 coin uses both LayerZero and Hyperlane. The two transports →
  • Any token can be the pair, on every chain. Chains and pairs →
  • Trading fees can pay the creator and the coin's holders, with a reward token and a share set per chain. Fees and holder rewards →
  • Coins launched before v4 keep their own rules: the v3 and v2 tabs.
A.2

What changed from v3

A.2
A.3

Factories and contracts

A.3
  • On each EVM chain: the chain's v4 factory, which makes the coin's token and opens its pool, and the shared bridge with its LayerZero and Hyperlane adapters.
  • The coin's token address ends in 6ea, on every chain.
  • On Solana: Pangea's launcher (the mint, its metadata and a Meteora pool whose liquidity is locked for good), the shared bridge program for every v4 Solana coin, and the price readers it consults.
  • Every address, ABI and IDL: v4 contracts and ABIs →
A.4

Chains and pairs

A.4
ChainBridgesPair
EthereumLayerZero and HyperlaneAny token
BaseLayerZero and HyperlaneAny token
BNB ChainLayerZero and HyperlaneAny token
Robinhood ChainLayerZero and HyperlaneAny token
SolanaLayerZero and HyperlaneAny token
ElysiumHyperlaneAny token

Each chain trades against the token you pick for it: the native coin, its wrapped form, USDC, a stock token or any token you paste. Any pair, any token →

Sheet BThe money
B.1

Launch flow and timing

B.1
  • The coin: its name, ticker and picture.
  • Its chains: every v4 coin lists all six; you pick the ones to open now. The others stay ready to open later.
  • What it trades against on each chain: any token. Chains and pairs →
  • The fees: the trading fee, and who it pays. Fees and holder rewards →
  • Review, then Create: the page shows what you will pay before you sign.

Or launch from your own wallet: no launch fee, you pay each chain's gas, with one Launch button per chain. Launch from your own wallet →

Buys at launch, from your wallets or a bundle in the same block: Launch buys and the Bundle Kit →

Timing

  • From your own wallet, a chain is open once its Launch click is confirmed on that chain. Two open chains can bridge to each other at once.
  • A platform launch opens every chain within the hour after the fee is paid.
  • Pangea's services wait 1 block on every chain. A Hyperlane message from Solana waits until its block is finalized, about 13 seconds.
B.2

Launch options

B.2
B.3

Launch from your own wallet

B.3
  • Every v4 coin lists all v4 chains by default: Ethereum, Base, BNB Chain, Robinhood Chain, Elysium and Solana. The creator only picks the chains to open now, then launches each from their own wallet with that chain's own Launch button (Launch on Solana, Launch on Base, and so on): Solana first, the other chains after. Each click does the whole chain, its tokenomics included. Every other chain stays not open yet and can be opened later, with no extra choice at the launch and no extra cost.
  • Each chain's launch is complete on its own or does not happen. A failed chain reverts whole, so its buy money never leaves the wallet, and it is retried as it is; a chain already open is marked done.
  • Two chains can bridge to each other as soon as both are open. A transfer to a listed chain that is not open yet is held, never lost.
  • Launch buys from several wallets work on every chain, in an ERC-20 quote token: the creator sends each buyer an ask and each buyer signs their own buy with their own wallet. In the chain's native coin each buyer pays from their own refundable deposit (sent when they sign): if the buy is skipped or the launch never opens, it stays theirs, and they withdraw it any time under Your launch-buy deposits on the launch page. The dev buy can be split between several wallets, each chain in its own transaction.
  • The creator's own opening buy and the dev buys inside the open pay no pool fee, on every chain, at the launch and when a chain is opened later. So do the other launch buys the open runs: the signed launch buys on the EVM chains and the creator's buy list on Solana. Every other buy pays the pool's full fee: Solana co-buys, the bundle kit's buys, buys over the bridge and every later trade.
  • Launch from your own wallet: no launch fee, you pay each chain's gas. Pangea sends no step of its own for a v4 coin, no route setup and no listing step, and there is no flat platform fee.
  • Every other service is paid by whoever uses it, when used: the bridge fee, delivery and the price-gap fee by the person bridging.

Or the platform opens it: pay-per-use

  • The same chains, transports, prices, opening buy and split dev buy, opened for you by Pangea's launcher. You sign once per chain, pay one launch fee on one chain, and the launcher opens every chain within the hour.
  • Nothing is spent until the fee is paid. A paid fee is refunded if no chain opens, and it is settled to Pangea only after the coin is open.
  • In a launch that opens Solana with other chains, the page asks who opens Solana. The default, we do it: Pangea's launcher opens Solana too, first sending the creator's launch-buy list, then the whole Solana launch as one transaction, with no extra signature, its cost in the fee. Until the launcher's buy-list builder is live the page says so and asks you to sign Solana yourself.
  • Or do the Solana leg yourself: one transaction from your own Solana wallet, up to 32 launch buys, and its cost is taken out of the fee quote. A coin launched on Solana alone is always a self-launch.

Launch buys and the bundle kit in a self-launch

  • On the EVM chains other wallets' signed launch buys go in this launch too, and the bundle kit works with it as well (see launch buys and the bundle kit).

Payout wallets: one per chain type

  • Creator fees are paid to one payout wallet per chain type: an EVM wallet for the EVM chains, a Solana wallet for Solana. Each is asked when that chain type is first opened (at launch, or when you open it later), and it is required.
  • At launch: an EVM payout wallet when any EVM chain opens now, a Solana payout wallet when Solana opens now. The launch page and the platform-paid launch (on the page or through the API) will not launch without them. A chain type that is only listed (opened later) is not asked at launch.
  • A chain type's payout wallet is the coin's creator role wallet of that type, so handing over the creator role moves it.
B.4

Launch buys and the bundle kit

B.4

A v4 ticket answers bundleKit: true and launchBuys: true with bundleKitV4: each chain's mechanism and limits. The bundle kit is always on: it is never switched off, for any v4 launch kind on any chain. Neither choice locks out the other.

Launch buys: inside our launch transaction

  • EVM chains: the open runs every buy right after the seed, in the same transaction: your own buy, split dev buys, and other wallets' buys, each signed as one LaunchBuy (EIP-712). There is no count limit; the only limit is the transaction's gas (about 80 buys in 2^24 gas, maxLaunchBuys per chain). Ask at POST /api/v1/launch/v4/sponsored/prepare (otherBuys), send the signatures at POST /api/v1/launch/v4/sponsored/submit; a self-launch passes them to its own open.
  • Solana: co-buys (co_buys) inside the one launch transaction, each co-payer a signer, or the creator's buy list.
  • Solana buy list, who holds what: the money stays in the payer's own token account until the launch, which spends at most the approved amount and only for the launch the list names. The bought tokens wait in the list's own account until each is claimed to its named wallet (claim_buy, seconds after the launch), and the unused approval is ended with the reclaim the form offers right after the claims. A skipped or never-made launch spends nothing.

The bundle kit: your own buys bundled with the launch

  • The page hands out the held launch transaction (signed, not sent): your own open on a self-launch or open-later, or the platform's held open on a sponsored launch. The bundle builder puts it first and your buy transactions after it. Whoever sends the held transaction can only launch exactly that coin.
  • Ethereum: a private bundle through Flashbots or Titan. BNB Chain: through 48 Club or BlockRazor. The bundle lands whole, in one block, launch first, or not at all.
  • Base and Robinhood Chain have no bundle relay (one sequencer each). The kit sends the launch, waits until the sequencer accepts it, then sends every buy at once. They usually land in the same block, but that is not guaranteed and it is not atomic: a buy sent too early fails and costs its gas.
  • Solana: one Jito bundle, the launch first, your buys after it.
  • On Solana every v4 launch offers two ways for other wallets to buy at the launch, and you can use either or both. Launch buys: up to 8 co-payers (with any quote: USDC, SOL, Token-2022 or an xStock; 7 in a sponsored open, and 5 when the quote is priced through 2 route hops) sign the launch transaction itself and their buys run right after the pool opens, in the same transaction. Bundle kit: up to 12 more buyers sign their own small buy transactions, and the launch and their buys go to Jito as one bundle (at most 5 transactions): it lands all at once in one slot, the launch first, or not at all. The last buyer transaction pays the Jito tip. If the bundle relay does not take the launch transaction, the launch still goes out as usual with its launch buys, and the kit buyers simply do not buy.
  • Buyers past the launch-buy gas limit go in the bundle kit. Using both: your launch buys run inside the launch, and your bundle's buys come right after it.

The admin pause of new opens

The platform admin can pause new opens at once, with no wait: setOpensPaused on the EVM launch core, set_paused on the Solana launcher. While paused, every new launch and every open of a later chain is refused, the self launch and the platform-paid one alike. A coin already open is never touched: its trades, bridging, claims, launch-buy deposit withdrawals, handover and tokenomics all go on.

B.5

Opening a chain later

B.5

A coin launched on one chain, Solana included, can later open each of its other listed chains, one at a time or several at once, in any order. For example: launch on Solana, later open Robinhood Chain, Ethereum, Base and BNB Chain.

Who may open a chain

  • On the coin's home chain, the chain it was first launched on: the creator, any time.
  • On another listed chain within 1 hour of the launch: the creator, directly.
  • After that: whoever the current creator authorises, from the home chain, for that chain and until a deadline. Once the creator role is renounced, anyone may ask for that authorisation.
  • Never the platform: Pangea cannot open a chain or mint a coin's 1B.

What the opener chooses

  • The opening price, any price. There is no floor, no forced price and no platform seed.
  • The form starts at a 3,000 dollar market cap for that chain (its 1B tokens), shown and editable: change it to any price you want. Nothing is set for you.
  • That chain's 1B is minted and seeded into the coin's locked pool position from that price upward, as at a launch.
  • Optionally their own cash as two-sided liquidity: coins from their own opening buy plus pair token, of any size, in a separate position that is the opener's own and can be withdrawn, so the pool can be bought and sold from the start. With none, the pool opens with the chain's tokens only.
  • Launch buys and dev buys, in the same transaction, after the seed.
  • Before they sign, the page shows the market cap their price means on this chain beside the coin's other chains, and says plainly: your price, your risk; arbitrage moves it toward the other chains, only when that is profitable.

The payout wallet of a chain opened later

  • Opening Solana later asks for the coin's Solana payout wallet then, when the coin has none yet, and requires it: the home chain sets it in the same step (the EVM payout wallet is kept), and the open authorisation sent next carries it to Solana.
  • Opening another EVM chain reuses the coin's EVM payout wallet. A Solana-home coin with no EVM payout wallet names it on Solana first (signed by the coin's Solana creator, the Solana payout wallet kept), then opens.
  • There is no separate 'add a Solana key first' step. Once the creator role is renounced, no payout wallet can be named any more: that chain's creator share is burned.

From there the arbitrage bot brings the chains to one price, over either transport, trading only when that is profitable. Arbitrage is open to anyone.

How v4 prices a crossing: The signed gap price →
B.6

Any pair, any token

B.6
  • Any pair, any token, on every chain: Ethereum, Base, BNB Chain, Robinhood Chain, Elysium and Solana, on the self launch and on the platform-paid launch. The native coin, its wrapped form, USDC, a stock token, or any token you paste. There is no pair list, no admin approval and no minimum market: nothing allows or refuses a token by name.
  • Stock pairs: on the EVM chains a tokenized stock is an ERC-20 like any other and pairs as one. On Solana today's tokenized stock mints are Token-2022 mints with extensions (permanent delegate, pausable, scaled UI amount, default account state, a transfer-hook authority) that Meteora's cp-amm pools take only with a cp-amm TokenBadge. Such a mint pairs when Meteora's TokenBadge for it exists: the launch passes the badge to the pool. Without a badge it is refused before anything is created, and one that is paused, or frozen by default, right now is refused too. Its issuer's powers (it can pause the token or move it from any account) are your risk, shown as warnings.
  • Taxed tokens work: a transfer tax (or a Token-2022 transfer fee) is shown as a cost you pay on each buy, never a refusal, and the bridge never counts it as price.

Your risk: the warnings

  • A thin, taxed, new or volatile pair token can move your coin's price, and a token its issuer can change later can stop its swaps. The pair check shows what it finds about the token (its transfer tax, its market's depth, the issuer's powers) as warnings, never as refusals. The choice and the risk are yours.
  • A tokenized stock pair gets its own warning: its price follows the stock's market (closed hours, halts, corporate actions) and its issuer's rules.
  • A Solana Token-2022 mint whose issuer can still switch on a transfer hook (hook authority set, no hook program yet) is a warning, not a refusal: if the issuer switches the hook on, its pools stop working for it, your risk. Its cp-amm pool takes it only with a cp-amm TokenBadge: it pairs when Meteora's badge for that mint exists (the launch passes it); without one it is refused before payment (this token needs a Meteora token badge, which only Meteora can create).

Refused only when it truly cannot work

  • Not a token: on EVM, an address whose decimals cannot be read; on Solana, no initialised mint at that address, or a token program that is neither SPL Token nor Token-2022.
  • More decimals than the pair maximum: 36 on EVM, 36 on Solana (a Solana quote with many decimals is limited by the opening price the pool can take, not by its decimals).
  • The coin itself as its own pair.
  • A buy-and-sell round trip that reverts (refused by the SDK's pair verdict; the launch page shows the checker's facts as warnings): a honeypot, or a token whose transfer reverts in the checker's test.
  • The native coin as the pair of a launch with signed launch buys (EVM): those buys pull the pair token by an ERC-20 allowance, which the native coin has not; pair with its wrapped form to add launch buys, or launch without them.
  • On Solana, a token that cannot sit in the coin's cp-amm pool: an active Token-2022 transfer hook (a hook program runs on every transfer); NonTransferable; Token-2022's native SOL mint (pair with SOL instead); a Token-2022 extension that needs a cp-amm TokenBadge (any extension but transfer fee, metadata pointer, token metadata and a transfer hook with no hook program) when Meteora has no badge for that mint; and a mint that is paused, or frozen by default, right now.

The weak price path and unpriced marks

  • The weak price path mark: the pair still launches, with the mark and its reasons, when its price path is thin (on EVM, moving the path's thinnest pool 2% takes under 50,000 dollars; on Solana, the token's market holds under 50,000 dollars), when its depth could not be measured, or when the path could not be confirmed just now.
  • Unpriced, your risk: a pair with no readable pool path to a dollar price is not refused either. It launches unpriced, with the weak price path mark and its reason next to the pair before you pay; on Solana it opens with no route (signed price only). Its buys over the bridge are priced by Pangea's signed quote price where one exists, and its dollar figures may be missing.

Platform-paid: the gas share of a quote you chose

  • Gas kept on a revert: on the platform-paid launch, an EVM leg whose quote is a creator-chosen quote (not the native coin, its wrapped native or the chain's USD stable) has that open's priced gas share paid separately, in a second payment to the platform's launcher, and that share is kept if the open is mined and reverts (the platform spent the gas); you reclaim only the rest of the fee from the collector. If nothing is sent on that chain, the share is refunded to you by hand.
  • On EVM an ERC-20 pair is usually opened for you on the platform-paid launch. Such a quote must open with the coin sorting first in its pool, so no opening dust in a token the platform does not hold is owed: the coin's address is re-salted up to 24 times, and if none sorts first (a quote at a very low address, or several ERC-20 legs at once), prepare answers 409 before payment: try again, pay in the native coin or its wrapped native, or launch it yourself.
  • After 2 failed platform-paid opens on a quote you chose within 24 hours, for your wallet or for that quote, the platform-paid launch on it is refused before payment: launch it yourself, pick another quote, or try again later.
  • On Solana's platform-paid leg, any pair token but USDC is funded by the creator: your own transaction creates the platform's account for that token and the list's buys come from your own account, so the platform puts no money of that token in.
B.7

Fees

B.7
  • Trading fee: set at launch, from 0.3% to 5%.
  • The platform takes 20% of each trading fee; the rest is the creator's.
  • The platform's part is split 40% buyback and burn, 40% PANGEA holders, 20% platform. Equity share →
  • The creator's opening buy and the dev buys inside the launch pay no pool fee.
  • Launch fee: none from your own wallet, you pay each chain's gas. The platform launch takes one launch fee on one chain, refunded if no chain opens. Launch from your own wallet →
  • Bridging: the transport and delivery fee, quoted before you send, the unused part refunded, and the price-gap fee. The two transports →
B.8

Tokenomics

B.8
  • Part of the creator's fees can go to the coin's holders. On each chain you choose the reward token they are paid in and the share that goes to them.
  • To be paid, a wallet must hold a minimum share of the coin's supply on that chain. You set one minimum at launch, the same on every chain. After launch the creator can change it on any one chain. The least you may set, and the default, is 0.01% on the EVM chains and 0.01% on Solana.
  • Holders are paid by Pangea's payout service from each chain's vault. When the reward token is not the chain's native coin, the vault pays back its own gas by a swap: Gas payback →
PANGEA's own holders have a separate rule: Equity share →
B.9

Equity share

B.9
Equity sharePlanned

Built, not paying yet: the payouts start when Pangea switches them on.

  • On each chain, what the platform takes from the fees is split three ways: 40% buys back and burns PANGEA, 40% goes to PANGEA holders on that chain, 20% stays with the platform.
  • Holders are paid every 5 minutes, in proportion to the PANGEA they hold on that chain. A small amount waits until it is worth the gas to send, then it is paid; nothing is lost.
  • Fees taken in another token are swapped to the chain's own coin first, then paid.
  • Not paid: pools, the burn address, bridges, the PANGEA token contract and other contracts.
  • On Elysium the holder share stays in the platform wallet: there is no payout there.

Example

  • The platform takes $1,000 in fees on a chain.
  • $400 buys back and burns PANGEA, $400 goes to that chain's PANGEA holders, $200 stays with the platform.
B.10

Gas payback for non-native pairs

B.10
  • Paying holders costs gas, paid in the chain's native coin. A vault that holds another token pays that gas back by swapping some of it into the native coin.
  • The swap pays exactly the gas owed, within the cap on how much of a payout gas may take. Anything left over stays in the vault.
  • The swap goes through a route Pangea quotes at the time, with a least amount of native coin it must return, so a bad price cannot drain the vault.
  • If there is no route, or the swap fails, there is no payback that time: the holders are still paid.
B.11

Supply per chain and market cap

B.11
  • Every v4 coin's address ends in 6ea, on every chain: on the EVM chains its token address, the same on each of them, and on Solana its mint. The contracts refuse an open whose address does not end in 6ea, so a 6ea ending is the mark of a real Pangea coin. Your browser, the SDK and Pangea's server search the salt that gives it before the launch; that takes seconds.
  • A v4 coin's name and ticker have no length limit, on any chain. Only an empty name or ticker is refused.
  • A v4 coin's metadata (its image and description) is named on chain by a URI. On the EVM chains it is given at the open and the coin's creator can change or clear it later with setMetadataURI (at most 128 bytes; the current creator role holder only, nobody once the role is renounced). On Solana it is the ipfs:// address of the metadata, given at the open as its content digest (CID v0 or v1), and fixed.
  • 1B tokens per chain, fixed. A coin lists up to 8 chains and has 1B per chain at most, and each chain's 1B is minted only when that chain opens, once, at an address fixed by the launch. There is no other way to mint it.
  • The supply is 1B per chain, not 1B across chains: a coin open on 4 chains has 4B, and its most is 1B times the chains it lists. The API says so: supplyModel "per-chain", capSupply the supply across the open chains, capSupplyMax 1B times the listed chains.
  • Degen on a v4 coin means only the lowest opening market cap ($600 a chain to start; a launch on 2 or more chains is sponsored and degen, one on a single chain opens normal at $3,000). It says nothing about supply: a degen coin also has 1B on each open chain.
  • The chain list and the transport list are fixed at launch. Nobody, Pangea included, can add a chain, a peer or a transport to a launched coin. Chains Pangea adds later are for coins launched after that.
  • Market cap and FDV are the price times the supply summed across the open chains: the supply mirror's figure once it reports (the open chains' tokens, including those on their way between chains, less anything the gap fee burned), else 1B times the open chains. Never one chain's supply. The price is that of the pool the signed price reads, else the deepest official pool. Chains listed but not yet open add nothing to it.
  • The coin page and the coin's row in Explore show open on N of M chains: N the chains open now, M the chains the coin lists. The coin page lists each chain: open, with its price, pool and supply, or not open yet.
  • Tokenomics on a v4 coin is switched per chain. The coin's creator may turn it on while it is off and the role is not renounced (at the open or later, also again after the platform admin turned it off); the creator can never turn it off or re-point it to another account. The platform admin can turn it on, off and re-point it at any time, for any coin, renounced or not: on EVM chains adminEnableTokenomics, on Solana the launcher's admin_enable_tokenomics (on, or re-point while on) and its admin disable. The endpoint is POST /api/tokenomics/v4/switch.
  • The creator's tokenomics vault (EVM) or tokenomics account (Solana) is made on the page, from the creator's own wallet, which pays its gas or rent: at the launch, when an EVM chain is opened later, at Solana's later enable, and at the creator's enable on an open EVM chain. There is no address to paste. Each chain's leg is set in the tokenomics editor (burn, buy and hold, liquidity, holder rewards and payout wallets); on EVM the wallet sends createVault on the tokenomics v2.4 factory (skipped when that vault is already there), on Solana init_tokenomics_v24. The page rebuilds each transaction and compares it before the wallet is asked, and the turn-on names exactly the vault or account made and read back. It belongs to the coin and stays with it after a handover.
  • The platform admin's tokenomics panel is on the coin page, shown only to the admin's wallet (the launch core's admin on EVM, the launcher's program authority on Solana): turn on, re-point (on EVM with a choice to settle first), turn off or clear, on any open chain, at any time, renounced or not, naming the vault or tokenomics account. Every transaction is rebuilt on the page and compared before the wallet is asked.
B.12

Handing over the creator role

B.12
  • The creator role is the wallets that receive the creator fees, one for the EVM chains and one for Solana. The current creator moves it themselves, on the coin's home chain, in one transaction, at once. There is no propose and accept step.
  • The change is then copied to every other open chain by a bridge message. The profile page offers one push per other open chain, priced first, and whoever sends a push pays its transport and delivery fee. Until a copy lands, seconds to minutes, that chain still pays the old wallet.
  • The creator can also renounce the role, at once, after typing the coin's symbol to confirm. The creator share of the fees is then burned, and anyone may ask the home chain to authorise opening the coin's remaining chains.
  • The platform can still move the role, as for v3 coins: it names a new wallet and that wallet accepts. This also ends a renounce. A creator's own moves cannot cancel it, so a stolen creator wallet cannot block a recovery.
  • An authorisation to open a chain given before a handover or a renounce stops counting once the new role reaches that chain; the new creator gives it again.
  • v4 coins have no separate buy or sell fees and no launch tax.

From a program

POST /api/v1/launch/v4/handover builds the move or the renounce for the current creator's own wallet, on an EVM-home coin's home chain. A Solana-home coin's handover is a Solana instruction signed on the coin page: the API answers 409 for it. See v4 from a program.

B.13

Elysium

B.13
  • A v4 coin lives on up to six chains: Robinhood Chain, Base, Ethereum, BNB Chain (BSC), Solana and Elysium. The four EVM chains and Solana carry LayerZero and Hyperlane; Elysium (chain id 99901, gas in HYPE) carries Hyperlane only.
  • Transfers to and from Elysium go over Hyperlane, signed by Pangea's validator alone.
  • The PANGEA holder share on Elysium stays in the platform wallet: there is no payout there. Equity share →
  • Coins launched on Elysium before v4 keep their own rules: the v3 tab.
Sheet CWhat is built
C.1

Solana

C.1
  • Pangea's Solana launcher makes the mint and its metadata and opens a Meteora pool whose liquidity is locked for good.
  • One shared bridge program carries every v4 Solana coin, over LayerZero and Hyperlane.
  • You launch it from your own Solana wallet with Launch on Solana, first. Launch from your own wallet →
  • Launch buys on Solana go in the launch itself, up to 32; the Bundle Kit uses one Jito bundle. Launch buys and the Bundle Kit →
  • A Hyperlane message from Solana waits until its block is finalized, about 13 seconds. From Solana you pay the transport fee in SOL.
C.2

Security and audits

C.2
  • Every mint needs two signer sets: Pangea's and one Pangea does not control.
  • Tokens are burned on the chain they leave before they are minted where they arrive, a message lands only over the transport it was sent on, at most once, and an arrival is never credited more than the amount sent.
  • Liquidity is locked on every chain: no contract function or program instruction withdraws it.
  • The admin can pause new launches and new chain openings at once. A coin already open is never touched: trading, bridging, claims and withdrawals go on.

Audits

  • v3 was audited in full.
  • v4 was reviewed part by part in November 2026: each part's code read line by line, every finding rated Critical, High, Medium, Low or Info. A later change to a part got one review of the changed code.
  • Every High and Medium finding was fixed, with a test that fails before the fix and passes after it. Low and Info findings were accepted and logged.
  • Reviewed by: Pangea's own review, with one or more reviewers for each part. Outside audit firm: —.
PartCriticalHighMediumStatus
EVM bridge, coin and price-gap engine001Fixed
EVM launch, settlement and fee split002Fixed
EVM LayerZero and Hyperlane connections027—
Solana bridge002Fixed
Solana launcher and fee split002—
Hyperlane signers and message delivery002Fixed
Pangea's services (delivery, keepers, payouts)005Fixed
Arbitrage bot002Fixed
Go-live and deployment scripts006Fixed
Web: launch pages0511—
Web: API008—
SDK and docs0211—

A dash is a status the review records do not state yet.

C.3

What runs it

C.3
  • The launch worker sends the platform launches.
  • Pangea's LayerZero verifier and Hyperlane validators sign transfers, each after 1 block.
  • The delivery bot lands arrivals, backing up LayerZero's executor after 20 seconds.
  • The v4 watchdog raises any send that has not arrived after 15 minutes.
  • The deviation keeper posts the bridge's cost figures; the fee sweep and the gas keeper collect and split the platform's fees.
  • Holder payouts run every 5 minutes. Equity share →
  • Pangea's arbitrage bot keeps a v4 coin at one price across its open chains. Arbitrage is open to anyone.
  • Every switch and setting: v4 settings →
C.4

The verified badge

C.4
  • A verified coin shows a check mark on its Explore card and on its coin page.
  • The list is set by Pangea's admin, by chain and contract address, never by name or ticker. A coin is added or removed at once.
  • It covers v4 coins and the coins launched before, on all six chains.
  • A coin without the mark is not flagged as bad: it simply has not been checked.
Sheet DCrossings
D.1

One shared bridge per chain

D.1

A v4 coin is not its own bridge. Each chain has one shared Pangea bridge that carries every v4 coin. The coin's token is a plain token that only that bridge mints and burns, and every message names the coin it carries by its coin id.

  • Routes, verifier settings and delivery are set once per chain pair, for all v4 coins together. A new v4 launch sends no route-opening transactions, and no one pays a one-time route setup on a v4 coin's first transfer.
  • The coin id is fixed at launch from the coin's chain list, its transport list and the routes of each listed chain and transport. The bridge refuses a message for a chain or a transport outside those lists, and no setting added later reaches a coin launched before it.
  • The bridge, its transport adapters and the tokens cannot be changed after they are set. No admin function can mint, burn or move anyone's tokens.
  • A pause stops only new sends. A message already sent can always be received: credited, or held and later released or refunded.
  • Peers are chain-neutral 32-byte ids and the message carries the amount in shared decimals and the recipient as 32 bytes, so a chain of another kind can be added later without new EVM contracts.

What a message can carry

  • A plain transfer: tokens you hold, burned here and credited there.
  • A buy and bridge: cash in, the coin bought from its pool on this chain and sent in the same transaction.
  • A creator role update: the current creator wallets, copied from the coin's home chain to its other open chains.
  • An open authorisation: the home chain's permission for a named wallet to open one listed chain.
  • A refund: a held transfer sent back to the sender's chain, credited in full.

Held transfers and refunds

  • An arrival is held, never lost, when its chain is not open yet, when it would credit less than the recipient's minimum, or when a buy and bridge waits for Pangea's delivery to land it at the price.
  • Anyone may release a held transfer once it can be credited. The recipient can also accept one held below its minimum now, at the current credit.
  • A held transfer can be refunded to the sender's chain, credited there in full; whoever asks pays the return fee. The recipient may ask any time. A transfer held below its minimum: also its original sender, after 1 day. A transfer held for a chain still not open: anyone, after 1 day. Once the coin is open on that chain, or while the hold waits for Pangea's delivery: only the recipient.
v3 coins keep their own bridges: The bridge price-gap fee →
D.2

LayerZero and Hyperlane, both always

D.2

Every v4 coin uses both LayerZero and Hyperlane. Neither is a fallback for the other, and neither the creator nor the sender chooses between them: both are always on, on every route that has both. A route that touches Elysium has Hyperlane only, because LayerZero does not reach Elysium.

What holds on both

  • Supply stays exact: the tokens are burned on the source chain before anything is minted on the destination.
  • A message is received only over the transport it was sent on, from that route's peer, and at most once.
  • There is no mint cap per transport.
  • A coin uses only the transports in its transport list, fixed at its launch: by default every transport all its chains have, LayerZero and Hyperlane today. A transport Pangea adds later is offered only to coins launched after it was added.
  • The default is per route, set by the contracts themselves: LayerZero and Hyperlane on every route, and Hyperlane only on a route that touches Elysium, whatever the coin's home chain. The launch page shows the transports of each route; it does not ask for them.
  • Elysium is opt-in per coin. Elysium has no LayerZero endpoint, so transfers to and from Elysium go over Hyperlane. A coin that lists Elysium keeps LayerZero and Hyperlane between its other chains (for example Ethereum and Base); only its Elysium routes are Hyperlane only. Elysium messages are attested by Pangea's validator alone. The launch page says so before you pick Elysium.

Who checks a message

  • Every mint needs two signer sets, Pangea's and one Pangea does not control. Two, not more, for speed; a route is set once, so no third set can be added to it later.
  • LayerZero: Pangea's verifier and LayerZero Labs' verifier.
  • Hyperlane: Pangea's own validators and Hyperlane's validators: the Abacus Works set on Ethereum, Base and BNB Chain, the default set on Robinhood Chain and Solana. Pangea's set can never be removed from a route; the Hyperlane side can be rotated, as verifier sets are on LayerZero.
  • A coin that uses both transports is as strong as the weaker of the two: either can deliver it.

How long each waits

Every wait Pangea runs is 1 block on every chain: its LayerZero verifier and Hyperlane validators, its Hyperlane message delivery, its delivery, its bridge indexer and the settle of a sponsored launch. That is the fastest setting, and Pangea accepts the reorg risk that comes with it. The one exception is a Hyperlane message sent from Solana: Hyperlane message delivery reads Solana only once a block is finalized, so that message waits until the block is finalized. A Hyperlane message also waits for Hyperlane's set (except from Elysium, where Pangea's validator signs alone), which keeps its own wait, so on some chains it is slower:

FromPangea's LayerZero verifier waitsPangea's Hyperlane validator waits
Ethereum1 block1 block
Base1 block1 block
BNB Chain1 block1 block
Robinhood Chain1 block1 block
Elysiumno LayerZero1 block (Pangea's validator alone)
Solana1 blockuntil the block is finalized, about 13 seconds
A transfer is followed on the explorer of its transport: LayerZero Scan or the Hyperlane Explorer. The Bridge page links each transfer to the right one.

The fee you pay: fee up to X, unused part refunded

  • Every paid send (the Bridge page, the SDK and Pangea's bots) pays the quoted transport and delivery fee plus a buffer, so a cost figure raised between the quote and the landing cannot make the send fail. The card says "fee up to X, unused part refunded": X is the most it can take, and the unused part is refunded to the sender in the same transaction (LayerZero and Hyperlane both refund what the fee did not use). From Solana the card says "Transport fee up to X SOL": only what is charged is paid, the rest stays in your wallet.
  • The buffer is the larger of 15% and the keeper's max step: 50% now. The max step is the largest raise the deviation keeper may post for one cost figure in one post; a bigger move is posted in several steps, each at most the max step, so one buffer always covers one post.
  • The max step is one config value, PANGEA_KEEPER_MAX_STEP_BPS, read by the keeper, the web, the SDK and the bots alike: a whole number of basis points from 500 to 5,000. Unset, it is the default 5,000 (50%); here it is 5,000 (50%). An invalid value is never used: the keeper refuses to start on it.

Sending from Solana

From Solana a v4 coin is bridged on the Bridge page too: Quote shows the cost read from the chain, transport and delivery, and Bridge then signs exactly the quoted transaction.

Cheapest chain: a sale through Solana

A Cheapest chain sale through Solana sends your coins to Pangea's sale program on Solana with your sale's order, and the app offers it only while that program is set up to receive it. Send to the sale composer only through the app or the SDK: a hand-made transfer to it carries no order and may not be recoverable.

D.3

The signed gap price

D.3

A v4 coin's price-gap fee is priced at bridge time only. Launching needs no price and has no listing step.

  • First choice: one price signed by Pangea's server for the pair of chains of the transfer, read from the pool the aggregators route the coin through on each chain, at that pool's live price. It is conservative: the source chain's lowest price of the last 30 seconds and the destination's highest. It is valid for 30 seconds, 60 on Ethereum, and the contract checks the signature and that it is fresh.
  • It is public, with no key: GET /api/gap-price/<coin id or token>?src=<chain>&dst=<chain> returns it, so a transfer sent without this site carries it too, passed unchanged in the call (on Solana, as a signature check before the send). An answer of 503 means no signed price: send without one.
  • The pool and its price are asked of the aggregators: on the EVM chains Uniswap, KyberSwap, 0x and Relay, on Solana Jupiter and Relay. Relay on Solana counts toward the price only; the pool comes from Jupiter, and a Relay outage only drops it from the count.
  • Fallback, with no signed price: the contract reads the coin's official pool on that chain, the pool it was launched or opened on. Readers exist for Uniswap v2, v3 and v4 (any hook), Aerodrome and Slipstream, PancakeSwap v3 and v4 on the EVM chains, and Raydium, Orca and Meteora on Solana, with the Sanctum stake-pool rate for liquid-staking tokens. The reader set is extendable: the platform can add new pool types without a new factory, token or bridge.
  • Neither can price it: the transfer goes through with no gap fee. A missing price never blocks a bridge. The one wait: on Solana the fallback may first ask for a fresh price record, a call anyone may send (record_price) that takes seconds; the Bridge page sends it for you.
  • A price supplied by the sender is never used. Only a signature from one of the platform's price keys counts, and a signed price can only lower what is credited, never mint more than was sent.
  • A Solana liquid-staking token (a Sanctum or SPL stake pool token) is priced on chain at its stake pool's rate, the SOL the pool holds per token, times the price of SOL. The rate is used only when the pool was updated in the current or the previous epoch.

A known limit, accepted

On a quiet coin, with no bridge activity for 30 seconds, someone holding a large bag can sell, have a price recorded, buy back, wait for the honest record to age out and then dump, so that one arrival is credited more than an honest one: measured about 8 percent more on a 20,000-coin transfer at a 12.5 percent gap, on EVM and on Solana alike. What is credited is never more than what was sent: the cost is gap fee that should have been burned, never a mint. The attacker must sell and hold for 30 to 45 seconds at their own risk, and Pangea accepts this limit. Pangea's own services keep the price records fresh, which shortens the quiet windows.

D.4

How pricing works

D.4

A coin on several chains is one coin. Its price on each chain comes from that chain's own pool, and moving it between chains never creates value out of a price gap.

What you set

  • The chains it lists, and which of them open now. A chain left closed can be opened later by anyone, at the price they pick, with liquidity of their own if they want.
  • The opening price on each chain you open, and an optional first buy of your own.
  • How it moves between chains: LayerZero, Hyperlane or both. A chain that has only one of them, such as Elysium, makes the coin use that one.
  • Chains and transports are set for good at launch. Nobody can add a chain to the coin later.

What keeps one price

  • Buying on one chain and moving it to another is credited at the price you actually paid, plus a small margin and the move's real cost. The margin is smaller where the destination pool is deeper.
  • Moving coins you already hold is priced at the lowest price of the last half minute, so a pump right before the move gains nothing.
  • Anything a move would credit above that price is burned, never created. That is what holds the chains together without an oracle.
  • A move waits, rather than landing at a guessed price, when a pool cannot be read, or when it would land below the least you asked for.

What you pay

  • Opening chains yourself: no launch fee. You pay each chain's network cost from your own wallet.
  • Letting us open them: one launch fee, shown before you pay, in the coin you pay with. It covers the networks, including Solana's.
  • Trades pay the coin's trading fee, shared between you and Pangea as the launch form shows.
The exact rule, with every constant and example: The signed gap price →
Sheet EFrom code
E.1

v4 contracts and ABIs

E.1

Six chains

A v4 coin lives on up to six chains: Robinhood Chain, Base, Ethereum, BNB Chain (BSC), Solana and Elysium. The four EVM chains and Solana carry LayerZero and Hyperlane; Elysium (chain id 99901, gas in HYPE) carries Hyperlane only.

ChainKindChain idTransports
robinhood Robinhood ChainEVM4663LayerZero and Hyperlane
base BaseEVM8453LayerZero and Hyperlane
ethereum EthereumEVM1LayerZero and Hyperlane
bsc BNB Chain (BSC)EVM56LayerZero and Hyperlane
solana SolanaSolana-LayerZero and Hyperlane
elysium ElysiumEVM99901Hyperlane only

EVM

  • PangeaBridgeV4: the one shared bridge on each EVM chain, the same for every v4 coin of its set and not replaceable (one shared bridge per chain →).
  • Two sets of these contracts are live side by side: v4a, the first v4 deploy, and v4b, the full redeploy and the current set (new addresses on every EVM chain, the same address on each chain, and a new Solana bridge program). New coins launch on v4b. v4a holds the coins launched before 2026-11-12: each stays on v4a for good and is served exactly as before. A coin's set is its own: the site, the SDK and every Pangea service read it per coin, and a coin never moves set. The addresses of both sets are in the tables below and at /api/v4/contracts (sets.v4b).
  • PangeaCoinV4: a v4 coin's token on that chain, a plain token that only the bridge mints and burns.
  • LzAdapterV4 and HyperlaneAdapterV4: the bridge's two transports, LayerZero and Hyperlane (LayerZero or Hyperlane →).
  • LaunchCoreV4: opens a coin on its chain (the launch, a chain opened later) and holds that chain's tokenomics switch.
  • GapOracleV4 and GapPriceSigV4: the gap price, signed or read from the coin's official pool (the signed gap price →).

Solana

  • pangea_bridge_v4 (8K7DTNE4bqPwZiueTPn8wD3NULAt3PxCMPA9nkFc2LK3 for set v4b, the current one (its LayerZero store 73FxfL4gYMYnWXPvmdi9ARL95qxDq8pdR3Yv8kNiShP2); Eeb1VmcMeYEfjaDsnbqdnVK4NKvwTafm2EKfx3hJVF6N for set v4a (coins launched before 2026-11-12)): the Solana bridge program the v4 coins of its set share, replacing the retired per-version pangea_oft_v4. It holds each v4 coin's record (the OFT store layout plus the bridge tail: coin id, home chain, opened chains, creator role), its mint authority, its GapConfigV4 (USD anchors, venue readers, the price signers, the fallback reader program) and the per-pool price records, and it carries both LayerZero and Hyperlane. Instructions: open_coin (through the launcher), send, buy_and_send, record_price, lz_receive, hl_handle, release_held, refund_held, quote_send, quote_oft, replace_quote_route (anyone, once a coin's price path stops reading), the creator role (transfer_creator, accept_creator, renounce_creator, push_creator, authorize_open); admin (parameters only, no pair list): set_gap_params, set_gap_coin. A coin may open with no price path at all (any quote, signed price only).
  • pangea_launcher (EnLq33Zqv6j15km7zxBXgwn8w6TiUxKQSeRosBFK8qZP, the one launcher of both sets): creates the mint (Token-2022), the Meteora DAMM v2 pool with its permanently locked position, and the coin's record in pangea_bridge_v4, then hands the mint authority to the bridge. It can stop launching a version at once. After a launch it only claims the pool's fees, pays a list's bought tokens to their named wallets, and burns what a closed list leaves in its holder.
  • Events: OFTSent and OFTReceived as v3, plus GapSentV4 (the message fields and, for a buy, the measured swap), GapReceivedV4 (the rule applied, credited and withheld, prices, margin, fee, cover) and GapPriceRecorded.
  • One shared address lookup table holds the constant accounts, so a buy-and-send fits one transaction.

Full ABIs and IDLs

The full ABI of every v4 EVM contract and the IDL of every v4 Solana program, unchanged from the frozen build (EVM build 3e674ac2b56198480ea5dea8dc537b9a1b6fb9a5) and the pinned program sources. Everything in one JSON file: /api/v4/abi; one contract or program: /api/v4/abi?id=<id>; the list with each file's sha256: /api/v4/abi?manifest=1. The same files ship in the v4 SDK as V4_ABIS and V4_IDLS. Addresses are per chain and per launch: a coin’s own contracts are read from its launch.

EVM contractWhat it is forAddresses it applies toDownload
PangeaBridgeV4The shared v4 bridge, one per chain: send, buyAndSend, credit, held release and refund, compose; its fallback runs the creator-role module (bridge-role-v4) by delegatecall.v4b (current): 0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880 on every chain. v4a (coins launched before 2026-11-12): 0x61713F12FfeF8774cF691a73707f41AD24666543 on every chain. /api/v4/abi?id=pangea-bridge-v4
BridgeRoleV4The bridge's creator-role module (transfer, renounce, accept, push the creator role; open rights), run by the bridge by delegatecall: call its functions at the bridge's address.v4b (current): 0xA38BA9F1a55e943aB75Af651176A8cF191D95A98 on every chain. v4a (coins launched before 2026-11-12): 0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8 on every chain. /api/v4/abi?id=bridge-role-v4
BridgeGapV4The bridge's gap price module: verifies a signed gap price, else reads the fallback readers through the oracle.v4b (current): 0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7 on every chain. v4a (coins launched before 2026-11-12): 0xf5a525C44c7C5C26204cf235af5aE40c3D13e820 on every chain. /api/v4/abi?id=bridge-gap-v4
BridgeBuyerV4The Uniswap v4 buy helper the bridge and the launch core each deploy for buy-and-bridge and launch buys.v4b (current): 2 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 2 addresses, per chain in the tables below. /api/v4/abi?id=bridge-buyer-v4
BridgeRowsV4The bridge's rowsHash view (T17-SIZE, EIP-170): stateless, reads its creating bridge's rows; PangeaBridgeV4.rowsHash forwards here.v4b (current): 0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf on every chain. v4a (coins launched before 2026-11-12): 0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1 on every chain. /api/v4/abi?id=bridge-rows-v4
LzAdapterV4The LayerZero transport adapter (transport id 1): sends and receives the bridge's 0x05 messages over LayerZero.v4b (current): 0x2D6333E483098CB8858D85EEC03F891ccBeFF486 on every chain. v4a (coins launched before 2026-11-12): 0x06f2e6167C1df13C3c6d008A5D7B236084A21783 on every chain. /api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4The Hyperlane transport adapter (transport id 2): dispatches through the mailbox and pins each origin's ISM.v4b (current): 0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5 on every chain. v4a (coins launched before 2026-11-12): 0x87cDAE05784A21DB30d1652757A62B23297459ae on every chain. /api/v4/abi?id=hyperlane-adapter-v4
LaunchCoreV4The v4 launch core, one per chain: opens a coin's leg (self, sponsored, open-later), launch buys, the fee splitter, tokenomics on/off.v4b (current): 0xaA61764BD44df5468CaaE856232Ce9B711512449 on every chain. v4a (coins launched before 2026-11-12): 0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b on every chain. /api/v4/abi?id=launch-core-v4
OpenerLiquidityV4The opener's own liquidity helper (LaunchCoreV4.ownLiquidity): adds the opener's position on the coin's official pool in openWithLiquidity (LIQ-EVM).v4b (current): 0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe on every chain. v4a (coins launched before 2026-11-12): 0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3 on every chain. /api/v4/abi?id=opener-liquidity-v4
PangeaFeeHookV4The v4 official pools' Uniswap v4 hook (FEEFREE-EVM): the live PangeaFeeHook v1 port; LaunchCoreV4's launch buyer trades fee-free, every other swap pays.v4b (current): 0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc on every chain. v4a (coins launched before 2026-11-12): 0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC on every chain. /api/v4/abi?id=pangea-fee-hook-v4
LaunchSettleV4The launch core's settle / tokenomics-switch helper (LaunchCoreV4.switchHelper).v4b (current): 0xA44cb48F042c29676ffD0659500711aA6B9aE953 on every chain. v4a (coins launched before 2026-11-12): 0xe715adA78D8883C1B094846400901f998c049b82 on every chain. /api/v4/abi?id=launch-settle-v4
CoinDeployerV4Deploys each coin's token by CREATE2 (salt = coinId); only the bridge and the core call it.v4b (current): 0x43049AbeEcCc6f321774439B636e88f669024d9f on every chain. v4a (coins launched before 2026-11-12): 0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a on every chain. /api/v4/abi?id=coin-deployer-v4
CoinCodeRegistryV4UPGRADEABLE COIN CREATION: the immutable, append-only list of coin creation codes; a coin's code version follows its createdAt; the bridge registers only a genuine coin (genuine()).v4b (current): 0x68415e3599F5551f59B9dD3855Bea39732ae8A00 on every chain. v4a (coins launched before 2026-11-12): 0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1 on every chain. /api/v4/abi?id=coin-code-registry-v4
SupplyReporterSUPPLY MIRROR: the one address every v4 coin takes reportSupply from (report / reportMany by an updater key; the admin sets updaters).v4b (current): 0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87 on every chain. v4a (coins launched before 2026-11-12): 0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55 on every chain. /api/v4/abi?id=supply-reporter-v4
PangeaDeployerV4The CREATE2 deployer that gives the v4 core contracts one address on every EVM chain.v4b (current): 0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC on every chain. v4a (coins launched before 2026-11-12): 0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85 on every chain. /api/v4/abi?id=pangea-deployer-v4
PangeaCoinV4The coin itself, one per coin per chain: an ERC-20 minted and burned only by the shared bridge. One per coin.Every coin's own token (its launch names it), in both sets./api/v4/abi?id=pangea-coin-v4
FeeSplitterV4One per coin per chain: splits the coin's trading fee between the platform and the creator. One per coin.Every coin's own token (its launch names it), in both sets./api/v4/abi?id=fee-splitter-v4
FullLaunchSettlerV4The full-launch fee settler at the chain's LaunchFeeCollector.v4b (current): 0x8baE47b994435a24fa6750D9359e11eF22c942CE on every chain. v4a (coins launched before 2026-11-12): 0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7 on every chain. /api/v4/abi?id=full-launch-settler-v4
GapOracleV4The v4 oracle / registry: per-chain gap settings, the fallback price readers and the signer set.v4b (current): 0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97 on every chain. v4a (coins launched before 2026-11-12): 0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7 on every chain. /api/v4/abi?id=gap-oracle-v4
AssetUsdReaderV4Reads a quote asset's USD price (the chain's wrapped native and its feeds).v4b (current): 5 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 5 addresses, per chain in the tables below. /api/v4/abi?id=asset-usd-reader-v4
UniV4PoolReaderV4The fallback reader: a coin's Uniswap v4 pool price in USD along its quote path.v4b (current): 5 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 5 addresses, per chain in the tables below. /api/v4/abi?id=uni-v4-pool-reader-v4
TokenomicsFactoryV24F1Makes a coin's tokenomics vault (v2.4 calls, holder floor 1 bps, per-block impact cap) at launch or when switched on; the factory the v4 launch core pins (HOLDER-MIN-1BPS, TK-COOLDOWN).v4b (current): 0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0 on every chain. v4a (coins launched before 2026-11-12): 0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9 on every chain. /api/v4/abi?id=tokenomics-factory-v24f1
TokenomicsVaultV24F1The tokenomics vault implementation (V24F1): payouts, holder rewards, burns; its fallback runs the two modules below.-/api/v4/abi?id=tokenomics-vault-v24f1
TokenomicsVaultV24ModuleF1The vault's main module, run by delegatecall: call its functions at the vault's address.-/api/v4/abi?id=tokenomics-vault-v24-module-f1
TokenomicsVaultV24BurnModuleF1The vault's burn module, run by delegatecall: call its functions at the vault's address.-/api/v4/abi?id=tokenomics-vault-v24-burn-module-f1
SaleComposerV4The sale composer (CSW-L3): runs a coin sale on the destination as the bridge's compose step.v4b (current): 4 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 5 addresses, per chain in the tables below. /api/v4/abi?id=sale-composer-v4
CheapestComposerV4The cheapest-route composer (CSW-L3): buys through the cheapest listed Uniswap v4 pair as the bridge's compose step.v4b (current): 4 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 5 addresses, per chain in the tables below. /api/v4/abi?id=cheapest-composer-v4
StaticAggregationIsmThe EVM ISM HyperlaneAdapterV4.setIsm pins per origin: a 2-of-2 aggregation of the Hyperlane-side multisig and our 1-of-1, made by the pinned StaticAggregationIsmFactory.-/api/v4/abi?id=hl-static-aggregation-ism
StaticMessageIdMultisigIsmThe two leaves of each origin's aggregation ISM (Hyperlane-side t-of-n and our 1-of-1), made by the pinned StaticMessageIdMultisigIsmFactory.-/api/v4/abi?id=hl-static-message-id-multisig-ism
InterchainGasPaymasterThe IGP (chains.json transports.hyperlane.ourIgp / hyperlaneIgp): pays for Hyperlane message delivery, for each message.v4b (current): 3 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 3 addresses, per chain in the tables below. /api/v4/abi?id=hl-interchain-gas-paymaster
StorageGasOracleThe IGP's gas oracle (remote gas price and token exchange rate per domain).v4b (current): 2 addresses, per chain in the tables below. v4a (coins launched before 2026-11-12): 2 addresses, per chain in the tables below. /api/v4/abi?id=hl-storage-gas-oracle
Solana programProgram id and what it is forDownload
pangea_bridge_v48K7DTNE4bqPwZiueTPn8wD3NULAt3PxCMPA9nkFc2LK3 (v4b, current) and Eeb1VmcMeYEfjaDsnbqdnVK4NKvwTafm2EKfx3hJVF6N (v4a, coins launched before 2026-11-12): The shared v4 bridge on Solana: coins, send and buy-and-send over LayerZero or Hyperlane, held release and refund, creator role./api/v4/abi?id=pangea-bridge-v4&kind=idl /idl/pangea-bridge-v4-v4b.json /idl/pangea-bridge-v4-v4a.json
pangea_ism_v4Fayi3vmEvDCNXW5Cc1oDdcCwpadx71Z14z9gA4ygStov (both sets): The Hyperlane ISM for Sealevel: per origin a frozen 2-of-2 aggregation of the Hyperlane-side set and our 1-of-1 (native program; Hyperlane ISM interface + our admin instructions (instant, with alerts))./api/v4/abi?id=pangea-ism-v4&kind=idl
pangea_readers_v47BeRQpptTjniVtngbQBBBdTARua9MFXCbF1ek3FPP6G4 (both sets): The v4 price readers on Solana (pool and quote-route USD reads for the gap price)./api/v4/abi?id=pangea-readers-v4&kind=idl /idl/pangea-readers-v4.json
pangea_launcherEnLq33Zqv6j15km7zxBXgwn8w6TiUxKQSeRosBFK8qZP (both sets): The launcher: Solana launches, open-later, launch buys and tokenomics for v4 coins./api/v4/abi?id=pangea-launcher&kind=idl /idl/pangea-launcher-v4.json

Contract addresses, set v4b (current)

Every v4 address the go-live deploy recorded, per chain (2026-11-12T21:30:51.709Z, also at /api/v4/contracts).

robinhood (chain id 4663)

ContractAddressABI or IDL
GapOracleV4 oracle0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA38BA9F1a55e943aB75Af651176A8cF191D95A98/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x64e7B17475e79381ab79549f56Ca859Bd87bA811-
ERC1967Proxy(CoinDeployerV4) coinDeployer0x43049AbeEcCc6f321774439B636e88f669024d9f-
CoinCodeRegistryV4 codeRegistry0x68415e3599F5551f59B9dD3855Bea39732ae8A00/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0-
LaunchCoreV4Impl coreImpl0x801C3677Ed6162062633cD74cAFD93c126182857-
ERC1967Proxy(LaunchCoreV4) core0xaA61764BD44df5468CaaE856232Ce9B711512449-
LzAdapterV4 lzAdapter0x2D6333E483098CB8858D85EEC03F891ccBeFF486/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x8baE47b994435a24fa6750D9359e11eF22c942CE/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x4E7cdA88D44A97daaCe885B0E6f2086AB555Ed65-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf-
BridgeBuyerV4(core) coreBuyer0x8414D1B0aE32ee2e08AbcDeA8855e30a181a4C92-
LaunchSettleV4(core) launchSettle0xA44cb48F042c29676ffD0659500711aA6B9aE953-
CoreInitV4(core) coreInit0x6eE0a49386a123BD5AF492f97AD6384526D078A2-
OpenerLiquidityV4(core) ownLiquidity0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe-
UniV4PoolReaderV4 poolReader0xEA9F73C936b7D486cFcA0d2Fc67188D919Ca83E8/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0xFFCD13acb40B5A70eE9277527f707A66174Ab5fa/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0xb24DF5777D831Bc747e5B217724fCbDd8C6566a1-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530xD56C7f2A27BE17CeD275345E5065A5a2eF11F331-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x60BDd37e065B195C767887bb3916E84b7F107D73-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560xEAB96b8FA2f121880dd23DDfE6A0131Ed7bEc04d-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010xFFC513F541aD0f5038c98c4e0E8aD4C3cb790f3D-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x6B82C7cb70111Afe7DA4FceFe50670ABbBaB2175-
SaleComposerV4 saleComposer0xcfBdB0969ec37c7D6fceD98130132b1B30D7c838/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0xD56900CB32FD12f9e484cF6f6593B058aB473127/api/v4/abi?id=cheapest-composer-v4
InterchainGasPaymaster (our IGP, proxy) igp0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
StorageGasOracle (our IGP's) igpGasOracle0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
ProxyAdmin (our IGP's) igpProxyAdmin0x74F79Ed7162cada04f20C9528F7439c59398D05F-
InterchainGasPaymaster implementation igpImplementation0x8172e99CE4385A44d506358132d89745D492d768-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-

base (chain id 8453)

ContractAddressABI or IDL
GapOracleV4 oracle0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA38BA9F1a55e943aB75Af651176A8cF191D95A98/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x64e7B17475e79381ab79549f56Ca859Bd87bA811-
ERC1967Proxy(CoinDeployerV4) coinDeployer0x43049AbeEcCc6f321774439B636e88f669024d9f-
CoinCodeRegistryV4 codeRegistry0x68415e3599F5551f59B9dD3855Bea39732ae8A00/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0-
LaunchCoreV4Impl coreImpl0x801C3677Ed6162062633cD74cAFD93c126182857-
ERC1967Proxy(LaunchCoreV4) core0xaA61764BD44df5468CaaE856232Ce9B711512449-
LzAdapterV4 lzAdapter0x2D6333E483098CB8858D85EEC03F891ccBeFF486/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x8baE47b994435a24fa6750D9359e11eF22c942CE/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x4E7cdA88D44A97daaCe885B0E6f2086AB555Ed65-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf-
BridgeBuyerV4(core) coreBuyer0x8414D1B0aE32ee2e08AbcDeA8855e30a181a4C92-
LaunchSettleV4(core) launchSettle0xA44cb48F042c29676ffD0659500711aA6B9aE953-
CoreInitV4(core) coreInit0x6eE0a49386a123BD5AF492f97AD6384526D078A2-
OpenerLiquidityV4(core) ownLiquidity0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe-
UniV4PoolReaderV4 poolReader0x091871ec0bE9106F7BB00b69F1B5fea888dF3954/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0xaf14bA5DE326F453b4bD066F8A2745F3F56Cc20a/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x4F96A81622B40f842a31CFfcF4917659e9381143-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x1831608C2439B9Afe62D8188BcC9164FCbce09E8-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x991669a68f37a7BBe8B538C9076Ab9C2A631cdA9-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560x0640df153B52cb3ee5bEe8b1E57Ff43704000C49-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010xD13416f524709129c24CC333D91755A6796E422e-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x7460349359a43275F896aa010669ef0804D62072-
SaleComposerV4 saleComposer0x6B5a722aEc73377aF894C7cc67d0B5C7cd972531/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0x8b3C37c9Af3a91b39Ba8de3ba06CAD257d92Be5a/api/v4/abi?id=cheapest-composer-v4
InterchainGasPaymaster (our IGP, proxy) igp0xE4c4F91F023F55237Ed8CC046e2DCd2Fa02033Ff-
StorageGasOracle (our IGP's) igpGasOracle0x8172e99CE4385A44d506358132d89745D492d768-
ProxyAdmin (our IGP's) igpProxyAdmin0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
InterchainGasPaymaster implementation igpImplementation0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-

ethereum (chain id 1)

ContractAddressABI or IDL
GapOracleV4 oracle0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA38BA9F1a55e943aB75Af651176A8cF191D95A98/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x64e7B17475e79381ab79549f56Ca859Bd87bA811-
ERC1967Proxy(CoinDeployerV4) coinDeployer0x43049AbeEcCc6f321774439B636e88f669024d9f-
CoinCodeRegistryV4 codeRegistry0x68415e3599F5551f59B9dD3855Bea39732ae8A00/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0-
LaunchCoreV4Impl coreImpl0x801C3677Ed6162062633cD74cAFD93c126182857-
ERC1967Proxy(LaunchCoreV4) core0xaA61764BD44df5468CaaE856232Ce9B711512449-
LzAdapterV4 lzAdapter0x2D6333E483098CB8858D85EEC03F891ccBeFF486/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x8baE47b994435a24fa6750D9359e11eF22c942CE/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x4E7cdA88D44A97daaCe885B0E6f2086AB555Ed65-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf-
BridgeBuyerV4(core) coreBuyer0x8414D1B0aE32ee2e08AbcDeA8855e30a181a4C92-
LaunchSettleV4(core) launchSettle0xA44cb48F042c29676ffD0659500711aA6B9aE953-
CoreInitV4(core) coreInit0x6eE0a49386a123BD5AF492f97AD6384526D078A2-
OpenerLiquidityV4(core) ownLiquidity0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe-
UniV4PoolReaderV4 poolReader0xaf14bA5DE326F453b4bD066F8A2745F3F56Cc20a/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0xeec7ff9Ccd3d41Da50C7eD016ef83813fa132dE3/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0xbDB8F2DF45c6d3baf60d0E22615C007dC85dca16-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630xf73c4ed8aA3deB69aa57f5A0564A4325c571775a-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530x785C99a26a01EC9C812dD23Bd7400bB9dF6954e3-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560x4860024A80D110524C907753784a5420Bf58437d-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010x8B106a39CC6f87FC193999a8011F7D0aaCDf2558-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x1227e98D6B51EbaE3a725E51ACF416227966DB76-
SaleComposerV4 saleComposer0x8b3C37c9Af3a91b39Ba8de3ba06CAD257d92Be5a/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0x7C433AE3b958946cFB2F1AB8c1fA6448878c00a5/api/v4/abi?id=cheapest-composer-v4
InterchainGasPaymaster (our IGP, proxy) igp0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
StorageGasOracle (our IGP's) igpGasOracle0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
ProxyAdmin (our IGP's) igpProxyAdmin0x74F79Ed7162cada04f20C9528F7439c59398D05F-
InterchainGasPaymaster implementation igpImplementation0x8172e99CE4385A44d506358132d89745D492d768-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-

bsc (chain id 56)

ContractAddressABI or IDL
GapOracleV4 oracle0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA38BA9F1a55e943aB75Af651176A8cF191D95A98/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x64e7B17475e79381ab79549f56Ca859Bd87bA811-
ERC1967Proxy(CoinDeployerV4) coinDeployer0x43049AbeEcCc6f321774439B636e88f669024d9f-
CoinCodeRegistryV4 codeRegistry0x68415e3599F5551f59B9dD3855Bea39732ae8A00/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0-
LaunchCoreV4Impl coreImpl0x801C3677Ed6162062633cD74cAFD93c126182857-
ERC1967Proxy(LaunchCoreV4) core0xaA61764BD44df5468CaaE856232Ce9B711512449-
LzAdapterV4 lzAdapter0x2D6333E483098CB8858D85EEC03F891ccBeFF486/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x8baE47b994435a24fa6750D9359e11eF22c942CE/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x4E7cdA88D44A97daaCe885B0E6f2086AB555Ed65-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf-
BridgeBuyerV4(core) coreBuyer0x8414D1B0aE32ee2e08AbcDeA8855e30a181a4C92-
LaunchSettleV4(core) launchSettle0xA44cb48F042c29676ffD0659500711aA6B9aE953-
CoreInitV4(core) coreInit0x6eE0a49386a123BD5AF492f97AD6384526D078A2-
OpenerLiquidityV4(core) ownLiquidity0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe-
UniV4PoolReaderV4 poolReader0xb00c7328BeDC137375F359271b3DE25249F8C2B5/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0x7b601ED70Ab3F8a811302DD50A49FA026944A8D2/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x3a13Dd45357913a7Cd3b696Bd94F1657f9731d9b-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x14b07be3162D0f8106cBbBEC8e167D12dfC306C5-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530x59A11E16d2B85794fC346f7738e835D48f7Ba8aB-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10xf00928459C9749721655E6B039345521A9070dB9-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010x12c58613a235A1EB6AD01B7ae68a2C74B1bD6edf-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x1668deE34e7D6FB6e54feDcE84410AfeD56A6De3-
SaleComposerV4 saleComposer0xcfBdB0969ec37c7D6fceD98130132b1B30D7c838/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0xD56900CB32FD12f9e484cF6f6593B058aB473127/api/v4/abi?id=cheapest-composer-v4
InterchainGasPaymaster (our IGP, proxy) igp0xE4c4F91F023F55237Ed8CC046e2DCd2Fa02033Ff-
StorageGasOracle (our IGP's) igpGasOracle0x8172e99CE4385A44d506358132d89745D492d768-
ProxyAdmin (our IGP's) igpProxyAdmin0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
InterchainGasPaymaster implementation igpImplementation0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-

elysium (chain id 99901)

ContractAddressABI or IDL
GapOracleV4 oracle0xF755863A6C8786923472AAC7b6Ff1A01e1c3Ed97/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0x161925a08B5DA27E0eF56F8F5aeac7CE207d62C7/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA38BA9F1a55e943aB75Af651176A8cF191D95A98/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x52a4b40fa6d72f44fbAADb0e38cBc087b3Af0880/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xeA1cFDF7440C8cBde17665c80b9b4436F58f7d87/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x64e7B17475e79381ab79549f56Ca859Bd87bA811-
ERC1967Proxy(CoinDeployerV4) coinDeployer0x43049AbeEcCc6f321774439B636e88f669024d9f-
CoinCodeRegistryV4 codeRegistry0x68415e3599F5551f59B9dD3855Bea39732ae8A00/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x8e1Bf182a2a1FEdF9850379127D4535F18EA68cc/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0xB4AD7764D6257636479ec70511Aa9dfEFb2441b0-
LaunchCoreV4Impl coreImpl0x801C3677Ed6162062633cD74cAFD93c126182857-
ERC1967Proxy(LaunchCoreV4) core0xaA61764BD44df5468CaaE856232Ce9B711512449-
HyperlaneAdapterV4 hyperlaneAdapter0x0dC0deB0C095b871aCAF108b454177e5CF65EbF5/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x8baE47b994435a24fa6750D9359e11eF22c942CE/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x582613FDCE3B9cA8e439d8811E1522AAa0E3FdDC/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x4E7cdA88D44A97daaCe885B0E6f2086AB555Ed65-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0x5F49094337cB8b2D90e4BB231A0aa43c3d7f7bbf-
BridgeBuyerV4(core) coreBuyer0x8414D1B0aE32ee2e08AbcDeA8855e30a181a4C92-
LaunchSettleV4(core) launchSettle0xA44cb48F042c29676ffD0659500711aA6B9aE953-
CoreInitV4(core) coreInit0x6eE0a49386a123BD5AF492f97AD6384526D078A2-
OpenerLiquidityV4(core) ownLiquidity0x7a65c97f1Ce593aAb0758f6B00c9ea6FFcf5Dbfe-
UniV4PoolReaderV4 poolReader0x927CA3a46EF33d24c49AA73F27402416303f44Eb/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0xc5f676A42a90D92Ee98b2672e5ee3C583cffe536/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x909F08ECd42a2d71550ECD018e00D1E7f2E0d8C4-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x003645572A4CB9D52d2755e2cb62B332A5C52677-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530xD56C7f2A27BE17CeD275345E5065A5a2eF11F331-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x60BDd37e065B195C767887bb3916E84b7F107D73-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560xEAB96b8FA2f121880dd23DDfE6A0131Ed7bEc04d-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x6B82C7cb70111Afe7DA4FceFe50670ABbBaB2175-
SaleComposerV4 saleComposer0xf4a4aDD3398B813f33632A3c800C62E9f525D614/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0x07aD43eE35d44fBF2dC868a3A20E1E3e04D24a0C/api/v4/abi?id=cheapest-composer-v4
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-

solana (set v4b)

Program or accountAddressABI or IDL
pangea_bridge_v4 bridge8K7DTNE4bqPwZiueTPn8wD3NULAt3PxCMPA9nkFc2LK3/api/v4/abi?id=pangea-bridge-v4&kind=idl
Store LayerZero store (the bridge's own LayerZero row)73FxfL4gYMYnWXPvmdi9ARL95qxDq8pdR3Yv8kNiShP2-
lookup table shared9CVQoJmpLsQhoDQZQMdUqjZHaWjWX9rzP9dy9sDi4fdK-

Contract addresses, set v4a (coins launched before 2026-11-12)

Every v4 address the go-live deploy recorded, per chain (2026-11-12T15:33:04.682Z, also at /api/v4/contracts).

robinhood (chain id 4663)

ContractAddressABI or IDL
GapOracleV4 oracle0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0xf5a525C44c7C5C26204cf235af5aE40c3D13e820/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x61713F12FfeF8774cF691a73707f41AD24666543/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x8303775D8C59DC79cb2fC51DCA98f6dFBE42a56f-
ERC1967Proxy(CoinDeployerV4) coinDeployer0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a-
CoinCodeRegistryV4 codeRegistry0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9-
LaunchCoreV4Impl coreImpl0x40102aFB79353c8455DF2463A967696883aa5D1B-
ERC1967Proxy(LaunchCoreV4) core0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b-
LzAdapterV4 lzAdapter0x06f2e6167C1df13C3c6d008A5D7B236084A21783/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x87cDAE05784A21DB30d1652757A62B23297459ae/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x46Ae3591E728f6e8c99820aFca1664dcbAE0b7F5-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1-
BridgeBuyerV4(core) coreBuyer0xfeC6A2D15E879a7bb654d353cc1b9EE7DA6A4595-
LaunchSettleV4(core) launchSettle0xe715adA78D8883C1B094846400901f998c049b82-
CoreInitV4(core) coreInit0x083BFeAEb242D29b6117c370f65eB3CA5555E89e-
OpenerLiquidityV4(core) ownLiquidity0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3-
UniV4PoolReaderV4 poolReader0x405DCb353CC984765FE3f9E8CC16054D5c2B8dDA/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0x7Ee83b21993e706F645418837CFd6a5B4A0C88a7/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0xb24DF5777D831Bc747e5B217724fCbDd8C6566a1-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530xD56C7f2A27BE17CeD275345E5065A5a2eF11F331-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x60BDd37e065B195C767887bb3916E84b7F107D73-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560xEAB96b8FA2f121880dd23DDfE6A0131Ed7bEc04d-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010xFFC513F541aD0f5038c98c4e0E8aD4C3cb790f3D-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x6B82C7cb70111Afe7DA4FceFe50670ABbBaB2175-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-
InterchainGasPaymaster (our IGP, proxy) igp0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
StorageGasOracle (our IGP's) igpGasOracle0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
ProxyAdmin (our IGP's) igpProxyAdmin0x74F79Ed7162cada04f20C9528F7439c59398D05F-
InterchainGasPaymaster implementation igpImplementation0x8172e99CE4385A44d506358132d89745D492d768-
SaleComposerV4 saleComposer0xe5024F575113EDb45B41864f2a3e96CFe2885526/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0xe094Ad89EEC40526288B727ab21385b536984aBD/api/v4/abi?id=cheapest-composer-v4

base (chain id 8453)

ContractAddressABI or IDL
GapOracleV4 oracle0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0xf5a525C44c7C5C26204cf235af5aE40c3D13e820/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x61713F12FfeF8774cF691a73707f41AD24666543/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x8303775D8C59DC79cb2fC51DCA98f6dFBE42a56f-
ERC1967Proxy(CoinDeployerV4) coinDeployer0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a-
CoinCodeRegistryV4 codeRegistry0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9-
LaunchCoreV4Impl coreImpl0x40102aFB79353c8455DF2463A967696883aa5D1B-
ERC1967Proxy(LaunchCoreV4) core0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b-
LzAdapterV4 lzAdapter0x06f2e6167C1df13C3c6d008A5D7B236084A21783/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x87cDAE05784A21DB30d1652757A62B23297459ae/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x46Ae3591E728f6e8c99820aFca1664dcbAE0b7F5-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1-
BridgeBuyerV4(core) coreBuyer0xfeC6A2D15E879a7bb654d353cc1b9EE7DA6A4595-
LaunchSettleV4(core) launchSettle0xe715adA78D8883C1B094846400901f998c049b82-
CoreInitV4(core) coreInit0x083BFeAEb242D29b6117c370f65eB3CA5555E89e-
OpenerLiquidityV4(core) ownLiquidity0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3-
UniV4PoolReaderV4 poolReader0xaCdccEB7Dbfe838C12C62172CcfEC2bFb2fFda51/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0xa3ff7C1DF2EB78463577389eFC8Ad705803Fa685/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x4F96A81622B40f842a31CFfcF4917659e9381143-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x1831608C2439B9Afe62D8188BcC9164FCbce09E8-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x991669a68f37a7BBe8B538C9076Ab9C2A631cdA9-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560x0640df153B52cb3ee5bEe8b1E57Ff43704000C49-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010xD13416f524709129c24CC333D91755A6796E422e-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x7460349359a43275F896aa010669ef0804D62072-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-
InterchainGasPaymaster (our IGP, proxy) igp0xE4c4F91F023F55237Ed8CC046e2DCd2Fa02033Ff-
StorageGasOracle (our IGP's) igpGasOracle0x8172e99CE4385A44d506358132d89745D492d768-
ProxyAdmin (our IGP's) igpProxyAdmin0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
InterchainGasPaymaster implementation igpImplementation0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
SaleComposerV4 saleComposer0xE5c96e7BB813Fb025e592f641538617226870967/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0xE38f4F6Cf31262C49c753FB9C4C1527DE6eeb240/api/v4/abi?id=cheapest-composer-v4

ethereum (chain id 1)

ContractAddressABI or IDL
GapOracleV4 oracle0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0xf5a525C44c7C5C26204cf235af5aE40c3D13e820/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x61713F12FfeF8774cF691a73707f41AD24666543/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x8303775D8C59DC79cb2fC51DCA98f6dFBE42a56f-
ERC1967Proxy(CoinDeployerV4) coinDeployer0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a-
CoinCodeRegistryV4 codeRegistry0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9-
LaunchCoreV4Impl coreImpl0x40102aFB79353c8455DF2463A967696883aa5D1B-
ERC1967Proxy(LaunchCoreV4) core0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b-
LzAdapterV4 lzAdapter0x06f2e6167C1df13C3c6d008A5D7B236084A21783/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x87cDAE05784A21DB30d1652757A62B23297459ae/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x46Ae3591E728f6e8c99820aFca1664dcbAE0b7F5-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1-
BridgeBuyerV4(core) coreBuyer0xfeC6A2D15E879a7bb654d353cc1b9EE7DA6A4595-
LaunchSettleV4(core) launchSettle0xe715adA78D8883C1B094846400901f998c049b82-
CoreInitV4(core) coreInit0x083BFeAEb242D29b6117c370f65eB3CA5555E89e-
OpenerLiquidityV4(core) ownLiquidity0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3-
UniV4PoolReaderV4 poolReader0xCd101A1ba58DA7B9dF7f9C309a08C4D797c7bD18/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0x0C3c382A461692625E64Cf68d002e3A3B7248b19/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0xbDB8F2DF45c6d3baf60d0E22615C007dC85dca16-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630xf73c4ed8aA3deB69aa57f5A0564A4325c571775a-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530x785C99a26a01EC9C812dD23Bd7400bB9dF6954e3-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560x4860024A80D110524C907753784a5420Bf58437d-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010x8B106a39CC6f87FC193999a8011F7D0aaCDf2558-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x1227e98D6B51EbaE3a725E51ACF416227966DB76-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-
InterchainGasPaymaster (our IGP, proxy) igp0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
StorageGasOracle (our IGP's) igpGasOracle0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
ProxyAdmin (our IGP's) igpProxyAdmin0x74F79Ed7162cada04f20C9528F7439c59398D05F-
InterchainGasPaymaster implementation igpImplementation0x8172e99CE4385A44d506358132d89745D492d768-
SaleComposerV4 saleComposer0xE38f4F6Cf31262C49c753FB9C4C1527DE6eeb240/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0xABEb9F607700BA2970576284936Cff80DFC835CC/api/v4/abi?id=cheapest-composer-v4

bsc (chain id 56)

ContractAddressABI or IDL
GapOracleV4 oracle0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0xf5a525C44c7C5C26204cf235af5aE40c3D13e820/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x61713F12FfeF8774cF691a73707f41AD24666543/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x8303775D8C59DC79cb2fC51DCA98f6dFBE42a56f-
ERC1967Proxy(CoinDeployerV4) coinDeployer0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a-
CoinCodeRegistryV4 codeRegistry0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9-
LaunchCoreV4Impl coreImpl0x40102aFB79353c8455DF2463A967696883aa5D1B-
ERC1967Proxy(LaunchCoreV4) core0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b-
LzAdapterV4 lzAdapter0x06f2e6167C1df13C3c6d008A5D7B236084A21783/api/v4/abi?id=lz-adapter-v4
HyperlaneAdapterV4 hyperlaneAdapter0x87cDAE05784A21DB30d1652757A62B23297459ae/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x46Ae3591E728f6e8c99820aFca1664dcbAE0b7F5-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1-
BridgeBuyerV4(core) coreBuyer0xfeC6A2D15E879a7bb654d353cc1b9EE7DA6A4595-
LaunchSettleV4(core) launchSettle0xe715adA78D8883C1B094846400901f998c049b82-
CoreInitV4(core) coreInit0x083BFeAEb242D29b6117c370f65eB3CA5555E89e-
OpenerLiquidityV4(core) ownLiquidity0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3-
UniV4PoolReaderV4 poolReader0xb719e9e9977b387538c8c07e78d07ABAe382b7D8/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0x7d60B9Bdad7986AAFB5567Fac53b7489AD24d75c/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x3a13Dd45357913a7Cd3b696Bd94F1657f9731d9b-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x14b07be3162D0f8106cBbBEC8e167D12dfC306C5-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530x59A11E16d2B85794fC346f7738e835D48f7Ba8aB-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10xf00928459C9749721655E6B039345521A9070dB9-
ISM our leaf = solo ISM (origin 99901) ISM_our_leaf_solo_ISM_origin_999010x12c58613a235A1EB6AD01B7ae68a2C74B1bD6edf-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x1668deE34e7D6FB6e54feDcE84410AfeD56A6De3-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-
InterchainGasPaymaster (our IGP, proxy) igp0xE4c4F91F023F55237Ed8CC046e2DCd2Fa02033Ff-
StorageGasOracle (our IGP's) igpGasOracle0x8172e99CE4385A44d506358132d89745D492d768-
ProxyAdmin (our IGP's) igpProxyAdmin0xEd8ad9fbBE8f300cc93F5b0628aC485d02A99D04-
InterchainGasPaymaster implementation igpImplementation0xe9a5dE28F83448BF4F421C43a23EfDb11DFbacc5-
SaleComposerV4 saleComposer0xff68B37A76ea702195BD1dbb6783eD85D2cE8Cd7/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0x0c4a720D996ea2026C90EF84f31aEE100E3F8634/api/v4/abi?id=cheapest-composer-v4

elysium (chain id 99901)

ContractAddressABI or IDL
GapOracleV4 oracle0x7928e386Aa4E5e7A781A24B1a6cC1a14a5cCcfA7/api/v4/abi?id=gap-oracle-v4
BridgeGapV4 gapModule0xf5a525C44c7C5C26204cf235af5aE40c3D13e820/api/v4/abi?id=bridge-gap-v4
BridgeRoleV4 roleModule0xA57e5Ec5239D3fA1FF65A6b1A3026Bae57DA73b8/api/v4/abi?id=bridge-role-v4
PangeaBridgeV4 bridge0x61713F12FfeF8774cF691a73707f41AD24666543/api/v4/abi?id=pangea-bridge-v4
SupplyReporter supplyReporter0xdA13E67C8aDbf4D9F86820dBeC829D4733b00f55/api/v4/abi?id=supply-reporter-v4
CoinDeployerV4Impl coinDeployerImpl0x8303775D8C59DC79cb2fC51DCA98f6dFBE42a56f-
ERC1967Proxy(CoinDeployerV4) coinDeployer0xfF5af80C21318256A89e43975f5c91Ef3A5Dc22a-
CoinCodeRegistryV4 codeRegistry0xFcd5370F0b410CA1efab7E206CA94769b45CB1c1/api/v4/abi?id=coin-code-registry-v4
PangeaFeeHookV4 feeHook0x2243bEc6903F32Fe13e76C9502Bc08581A5EE8cC/api/v4/abi?id=pangea-fee-hook-v4
TokenomicsFactoryV24F1(v4) v4TokenomicsFactory0x5d2CDA40f29E0bFFd6f63D8Cb6b0dC7459654eB9-
LaunchCoreV4Impl coreImpl0x40102aFB79353c8455DF2463A967696883aa5D1B-
ERC1967Proxy(LaunchCoreV4) core0x9A8b8d44BA267B2Be3c5dc8A8CAE173870458e9b-
HyperlaneAdapterV4 hyperlaneAdapter0x87cDAE05784A21DB30d1652757A62B23297459ae/api/v4/abi?id=hyperlane-adapter-v4
FullLaunchSettlerV4 settler0x077AF6B5c66aA43e3Eb67ab542590efe05D955f7/api/v4/abi?id=full-launch-settler-v4
PangeaDeployerV4 deployer0x2BcfBfDbeEb4EB497Ee35dADDB7F88727219Fa85/api/v4/abi?id=pangea-deployer-v4
BridgeBuyerV4(bridge) bridgeBuyer0x46Ae3591E728f6e8c99820aFca1664dcbAE0b7F5-
BridgeRowsV4(bridge) BridgeRowsV4_bridge0xaC375ea0D628E9834c3D0f3C2fe774531Ec3CbD1-
BridgeBuyerV4(core) coreBuyer0xfeC6A2D15E879a7bb654d353cc1b9EE7DA6A4595-
LaunchSettleV4(core) launchSettle0xe715adA78D8883C1B094846400901f998c049b82-
CoreInitV4(core) coreInit0x083BFeAEb242D29b6117c370f65eB3CA5555E89e-
OpenerLiquidityV4(core) ownLiquidity0x81aF314f4387b4d5d75cd8C5E6826faDDF22A5e3-
UniV4PoolReaderV4 poolReader0x7F4A1881c62a750612427D3D06A6FD5776e6ECf7/api/v4/abi?id=uni-v4-pool-reader-v4
AssetUsdReaderV4 assetUsdReader0x048cEe092FBC02430f70d72360Ea3cA11F25aEEb/api/v4/abi?id=asset-usd-reader-v4
HyperlaneHook(aggregation{merkleTreeHook, ourIgp}) hyperlaneHook0x909F08ECd42a2d71550ECD018e00D1E7f2E0d8C4-
ISM our leaf = solo ISM (origin 4663) ISM_our_leaf_solo_ISM_origin_46630x003645572A4CB9D52d2755e2cb62B332A5C52677-
ISM our leaf = solo ISM (origin 8453) ISM_our_leaf_solo_ISM_origin_84530xD56C7f2A27BE17CeD275345E5065A5a2eF11F331-
ISM our leaf = solo ISM (origin 1) ISM_our_leaf_solo_ISM_origin_10x60BDd37e065B195C767887bb3916E84b7F107D73-
ISM our leaf = solo ISM (origin 56) ISM_our_leaf_solo_ISM_origin_560xEAB96b8FA2f121880dd23DDfE6A0131Ed7bEc04d-
ISM our leaf = solo ISM (origin 1399811149) ISM_our_leaf_solo_ISM_origin_13998111490x6B82C7cb70111Afe7DA4FceFe50670ABbBaB2175-
TokenomicsFactoryV24 tokenomicsFactory0x95f43B0D4c4144f2F5FfaC19a6fEAA8c67E41447-
TokenomicsV24Implementation tokenomicsImplementation0x484f5436aeaA8Da34Cf20010Ad6FA953fb147f76-
SaleComposerV4 saleComposer0x39Fe3Bd47739Cf6410CD41327A389322a76f6749/api/v4/abi?id=sale-composer-v4
CheapestComposerV4 cheapestComposer0x0913F320F035956cc6D092c422b9E288F9EF14d4/api/v4/abi?id=cheapest-composer-v4

solana

ContractAddressABI or IDL
pangea_bridge_v4 bridgeEeb1VmcMeYEfjaDsnbqdnVK4NKvwTafm2EKfx3hJVF6N/api/v4/abi?id=pangea-bridge-v4&kind=idl
pangea_ism_v4 ismFayi3vmEvDCNXW5Cc1oDdcCwpadx71Z14z9gA4ygStov/api/v4/abi?id=pangea-ism-v4&kind=idl
pangea_readers_v4 readers7BeRQpptTjniVtngbQBBBdTARua9MFXCbF1ek3FPP6G4/api/v4/abi?id=pangea-readers-v4&kind=idl
pangea_launcher launcherEnLq33Zqv6j15km7zxBXgwn8w6TiUxKQSeRosBFK8qZP/api/v4/abi?id=pangea-launcher&kind=idl
ism.initialize pda.ism.initialize3d768NP5LuBN4MzzJnSgTxBukWeNnXUiGZULrdXEj8vo-
bridge.init_gap_config pda.bridge.init_gap_config3ehkj847ekyN7cou7y9yRu5tXo2KXEw6tCDQjxfMK8QE-
bridge.init_bridge pda.bridge.init_bridgeCRTPG9SC2PpfUSLZrvxJCHpFG1Asu2hGbQGe3QR1trMH-
bridge.init_gap_delivery pda.bridge.init_gap_deliveryAKXEcHMEs2E1Ynpz9bx1QNfgpM5zYfVWHYUnxUqLGPpp-
bridge.add_route.30416 pda.bridge.add_route.30416952SsrMuy6S1fUX3KzzGEbosCgabvhwdxcesWcraXzax-
bridge.add_route.30184 pda.bridge.add_route.30184C5cjedbFNJk4ziBLwdsGJkgqmbmjT6AJqy5yoYhQpUQd-
bridge.add_route.30101 pda.bridge.add_route.30101AS6hV752tCtMRo4NgHBQ1M4MEqCNTiMZk83YhpBkY7uc-
bridge.add_route.30102 pda.bridge.add_route.301025XiiFT5iA6gEWz3TMdCXyyByGePN8ydz3VU16asWjFLy-
bridge.add_chain.4663 pda.bridge.add_chain.46639mLDWQfNS2DMPNKqrdjTiTdhzNMJuoNaF7qHibXiyidJ-
bridge.add_chain.8453 pda.bridge.add_chain.8453AFR63D2JqwhJk8KPRadW8UvVJmi63SzEPTsAHDZGZm3y-
bridge.add_chain.1 pda.bridge.add_chain.12PwdDbt1EXLMRaNhgpeqhd8p4KxEbSxo6NbJ6RnryNLa-
bridge.add_chain.56 pda.bridge.add_chain.563orpB3sNA5oWgfB2PjGTjMZJBUNTjzuZvbsvgFMUqnbZ-
bridge.add_chain.99901 pda.bridge.add_chain.999019Rgn9WuDD2t7sCCLWDLEtkb6fhmJHCUN9DXv5oXPqPbB-
bridge.add_chain.1399811149 pda.bridge.add_chain.1399811149D66VowJMTk6n29S3Gm3ru3njNaRocrsSKajYvk65XAgp-
bridge.wire_lz_route.4663.30416 pda.bridge.wire_lz_route.4663.304163VrKEbxnnQmp4JNL8CVYKH1JYmADEgcLEcV1qz8a9wSh-
bridge.wire_lz_route.8453.30184 pda.bridge.wire_lz_route.8453.30184Ayjxp2osZvU7gZxd7RLHGnQviicw67HeSH1jY8Mn4jTm-
bridge.wire_lz_route.1.30101 pda.bridge.wire_lz_route.1.30101D2huC3uAcLXtXH2yN7tP2PsD2jUin3e7i9R8zVgbyCSJ-
bridge.wire_lz_route.56.30102 pda.bridge.wire_lz_route.56.30102BZw9fLeK5bUUaeroLqBPNu3XnHFijsrSYCLwLGUni1qK-
alt.create_extend alt.shared5gZ6eh1H2acMvEhxcmZ9UDCxCaxphWuHQ4cCsym5ni4A-
launcher.initialize pda.launcher.initialize2rh4mKSwp6HzbUotsz3XAQ7xJNB9fza2oif9MLvTGFzy-
launcher.add_operator.BhZ74CpzS42vUJKbwjLthkxV6VaHQDgUkUkC7QCfNqnS pda.launcher.add_operator.BhZ74CpzS42vUJKbwjLthkxV6VaHQDgUkUkC7QCfNqnSDcWRVkDnPFeGkAjq3vSJrDqmoEhyP8J6qzAuWeT1fNkZ-
pangea_bridge_v4 Store PDA bridge.storeBzPdmMbMoGSCZ8UjZA6tRqR1RDBR5ubjESQ1aQpY95xn-
pangea_launcher fee_owner PDA launcher.feeOwnerFRsqKos8whrdQqq3KZ7LGZVnhdb3rDaTu6xxeT8n82D1-
E.2

v4 settings

E.2

Every v4 parameter is an admin setting per chain, most with a per-coin override, with no built-in range. The only refusals are arithmetic and the message format: a bridge fee of 10,000 bps or more, a pool fee of 1e6 or more, a zero address where an address is a key. Each setter takes effect at once and emits an event; there is no timelock. A setting that makes no sense, such as a floor above its ceiling, resolves the same way every time: the ceiling wins.

What no setting can change

  • An arrival is never credited more than the amount sent.
  • No admin function can move, mint or seize anyone's tokens or pool liquidity.
  • A pause stops only new sends: a message already sent can always be received: credited, or held and later released or refunded.
  • No admin can change a coin's supply, balances or mint authority (on Solana it stays with the frozen program).

The shared bridge program (Solana)

SettingScopeUnitsDefaultEffect
margin_k_e6, margin_min_ppm, margin_max_ppmprogram, coin overrideK x 1e6; ppm1e6; 1,000; 100,000the destination margin curve
k_on, kk_e6, k_min_ppm, k_max_ppmprogram, coin overrideon/off; K x 1e6; ppmon; 2e6; 15,000; 200,000the backstop k
lookback_secprogram, coin overrideseconds30the plain path's look-back
record_min_age_slots, need_record_onprogram, coin overrideslots; on/off3; ona send, and a price-path arrival, needs a record at least N slots old (GapNeedRecord); keep N x 0.4 s below the look-back, or every send and arrival holds
lock_onprogram, coin overrideon/offonthe buy's same-transaction sale lock; the check of every other instruction touching the pool or its hop pools is always on
fee_cap_ppm, min_liquidityprogram, coin overrideppm; DAMM liquidity10,000; 0fee counted in the price paid and at the destination; least in-range liquidity read
send_lamports, send_cu, swap_lamports, swap_cu, priority_micro_lamportsprogram, coin overridelamports, compute units, micro-lamports per unit0the gas part of the cost cover
sol_usd_min_e18, sol_usd_max_e18, cover_cap_usd_e18program, coin overrideUSD x 1e18unset; unset; $10the SOL price band and the cover cap
burn_onprogram, coin overrideon/offonon: the withheld part is burned. Off: nothing is withheld, the arrival is credited in full
sends_paused; SendPaused per destinationprogram; coin and routeon/offoffrefuses new sends; arrivals always land
Escapecoinon/offoffan emergency switch: arrivals credited in full
BridgeFee, Delivery, Composersprogramas v3as v3the bridge fee of new stores (below 10,000 bps; fixed in a store at its start), delivery keys, listed composers
UsdAnchorsprogram, 4 slotsmintsset at deploythe tokens counted as exactly $1, where a coin's price path may end. A parameter: it allows or refuses no pair token. A USD anchor prices at $1 with no path, wrapped SOL by its path, any other token in dollars only
Venue(kind, program)program, 6 reader kindsprogram idthe mainnet programswhich program each price-path reader reads: Meteora DAMM v2, Orca Whirlpool, Raydium CLMM, Meteora DLMM, Raydium CPMM, Raydium AMM v4. Re-pointing a kind makes its paths unreadable until anyone replaces them
RentMarkupBpsprogrambps1,000the markup on the token-account rent our delivery key pays when an arrival opens the recipient's account (rent x 1.10)
LaunchesStoppedprogramon/offoffstops new v4 coins
init_gap_delivery (the gap admin)programaccountsnonecreates our delivery account (GapDeliveryV4) once: markup 1,000 bps, max age 900 s, LayerZero gas 1, no chain listed
set_gap_delivery: Keepers, FeeToprogramtwo keys; accountnone; unsetwho may refresh the cost figures (and the admin); where swept charges go
set_gap_delivery: MarkupBps, MaxAgeSecprogrambps; seconds1,000; 900our charge = cost x (1 + markup), rounded up; how long a figure counts
set_gap_delivery: StaleModeprogram0 refuse / 1 LayerZero1 (owner, 11-06)what a send does when the figure is stale, never set or above its cap: 1 goes LayerZero's own way with no charge of ours; 0 refuses (6047, nothing moved)
set_gap_delivery: LzGasprogramgas1the lzReceive gas LayerZero's executor is asked for toward a chain our keys deliver
set_gap_delivery: Eid, Cost, ComposeCost, Capdestination chain (8 slots)endpoint id; lamportsnone listed; 0 = no capwhich chains our keys deliver to, a figure set by hand, the compose figure, and the most a refresh may write (above it: 6050, nothing written; a figure above a lowered cap counts as stale)
refresh_delivery_cost, refresh_compose_cost (keeper or admin)destination chainlamportsnonethe live cost figures, refreshed every minute by our keeper
sweep_delivery_fees (anyone)programnonenonepays every charge above the account's rent to the fee recipient; nobody can choose another payee
Altprogramlookup tablenone (required before launches)the one shared address lookup table LayerZero's executor is handed; a wrong one only delays deliveries
the coin's price path (passed in its launch)coin1 or 2 poolsfound by the launch pagethe pair token's dollar path: pools of the six venues above ending in a USD anchor, checked only to read at launch; of those that read, the deepest (the dollars a 2% move takes on its thinnest pool), never the shortest. No admin picks or approves it; the coin and bridge pages judge the path as stored (a thin one shows a weak price path badge, one that does not read is shown so), the risk is the creator's. Anyone may replace a stored path once it stops reading (never merely because a pool was touched that same second); the launch tooling first raises every v3 pool of the path to two price observations (increaseObservationCardinalityNext(2), charged in the fee), so a touch cannot make it stop reading. A path replaced since launch shows a “price path replaced since launch” badge, and anyone can put the launch path back whenever it reads (replaceCoinPath with the launch hops). On Solana the stored route's depth is not measured yet: its badge says “depth not measured”, not weak
replace_quote_route (anyone)coin1 or 2 poolsnoneonce a coin's stored path stops reading, anyone may replace it with one that reads (the same checks); refused while the stored one still reads
set_launcher, add_route (the deploy key)programprogram id; RouteV4 per eidthe launcher; nonenot admin settings: only the program's deploy key, before the program is frozen, and impossible after
init_gap_config, propose_gap_admin, accept_gap_adminprogramaccountsthe owner at deploythe gap config once, by the program's deploy key before the program is frozen; the admin in two steps
withdraw_fee (the gap admin)coinamountnonethe store's bridge fees (its escrow beyond what is locked), never a user's tokens; paid only to the platform's own account for the coin (the launcher's fee recipient), never to an account the admin names
wire_peer(eid) (anyone); add_route (before the freeze)coin; programendpoint idnonea peer only from the route table written before the freeze, forced to the coin's EVM token address; no key can set a peer, the delegate, a library or a DVN

The launcher program (Solana)

SettingScopeUnitsDefaultEffect
set_paused(paused)programon/offoffstops every launch at once; launched coins are untouched
set_pool_fee_bps(bps)programbps100 (1%)the flat base fee every new pool opens with
set_version(slot, version)program, 4 slotsprogram id, kind, on/offemptylists an OFT program version, or stops launching on it
set_quote(slot, mint)program, 4 slotsmintslot 0 wrapped SOLthe quote mints a pool may pair against
propose_fee_recipient(key), accept_fee_recipientprogramaccountunset (no claim)the platform's share of the LP fees, in two steps: the admin proposes, the new recipient accepts
add_operator, remove_operatorprogramaccountnonewho may call launch
clear_tokenomics (the platform admin only)coin, on Solananonenoneclears a wrongly pinned tokenomics account (a stale creator role's pin): unlike turning tokenomics off, no fee claim runs first and nothing more is paid to the cleared account; this chain is off again, so the fee claim pays the coin's current creator role, which may then turn tokenomics on again
claim_fees (anyone)coinnonenonepays a launch's LP fees by v3's split to the fee recipient and the launch's creator; neither can be chosen by the caller
launch_with_buys (a listed operator)launchno lista list of at most 32launch, plus the buys of a sealed list of the creator's, spending at most the quoted cap; a list that cannot be used is skipped and never fails the launch
create_buy_list, add_buy_entries (the payer)listnone1 to 32 entriesopens and seals one payer's list for one launch; the money stays in the payer's own token account, with the list as delegate; nothing edits a sealed list
claim_buy (anyone)list entrynonenonepays one bought entry to its named wallet; the sender is repaid the token account's rent; the caller cannot change who is paid
close_buy_list (the payer)listnoneonce every bought entry is claimedreturns the list's lamports to the payer; the money needs no instruction of ours, plain SPL takes it back
open_v4; stage_open_v4 then open_v4_staged (the opener)coin, on Solanaa frozen coin id, the opener's price, an optional opening buy and buy listnoneopens a shared-bridge coin on Solana: its 1B minted into its own pool at the opener's price, the opening buy and the list's buys in the same open; staged only when one transaction cannot hold the arguments
co_buys (every payer signs the transaction)launch transaction, on Solana1 to 3 other payers; up to 32 entries, each a wallet, amount, minimum and deadlinenoneright after the open in the same transaction, buys from each payer's own quote account; an entry past its deadline, under its minimum or beyond what its payer holds is skipped alone and never fails the launch; the web caps the entries so the one launch transaction fits Solana's size limit
init_cobuy_pot (anyone)quote mintnonenonecreates the account co-signed buys of one quote pass through (empty between uses), once per quote; the caller pays its rent
claim_cobuy (anyone)co-signed buynonenonepays one co-signed buy's coins to the wallet its entry named; the sender fronts that wallet's token account rent and cannot change who is paid
enable_tokenomics (the coin's current creator)coin, on Solanathe chain's tokenomics accountoff unless chosen at the openturns this chain's tokenomics on, once: from then on the creator share of the LP fees goes to the coin's tokenomics account; this launch's fee claim runs right before it in the same transaction
admin_enable_tokenomics (the platform admin only)coin, on Solanathe chain's tokenomics accountnoneturns this chain's tokenomics on, or points it at another tokenomics account, at any time, whether or not the creator role is renounced; this launch's fee claim runs right before it in the same transaction
disable_tokenomics (the platform admin only)coin, on Solananonenoneturns this chain's tokenomics off again; this launch's fee claim runs right before it in the same transaction
admin_enable_tokenomics (the platform admin only)coin, on Solanathe chain's tokenomics accountnoneturns this chain's tokenomics on, or re-points it to another tokenomics account while on, at any time, renounced or not; this launch's fee claim runs right before it in the same transaction
clear_tokenomics (the platform admin only)coin, on Solananonenoneclears a wrongly pinned tokenomics account (not an off: nothing is claimed to the cleared account first); the coin's current creator may then turn it on again
add_opener_liquidity_v4 (the opener, for itself)coin's official pool, on Solanacoin and quote amounts, a minimum liquiditynoneadds the opener's own two-sided position at the pool's current price, right after the open in the same transaction (or later): the coins from its opening buy, the quote from its own account; the position is the opener's, not locked, and can be withdrawn; refused under the opener's minimum (slippage bound); what is not used stays in its accounts
close_staged_open (who staged)staged opennonenonegives back the rent of staged open arguments that were never used
acquire_quote_unit (anyone, for themselves)launch transactionlamports to wrap; a Jupiter v6 or pool swap1 lamport for wrapped SOLright before a launch, buys the one pair-token unit the pool's creation takes from the operator (wraps its SOL, swaps it into its own pair-token account, then checks that account holds at least one unit), so the operator holds no float; nobody but the caller's own money moves. Our launches charge the unit's quoted cost, cap what the swap may spend at 1.5 times that charge, and check the swap's accounts before the operator signs it

Off-chain switches

SettingScopeUnitsDefaultEffect
NEXT_PUBLIC_GAP_V4webon/offoffshows the v4 bridge card, the v4 launch option and these docs
PANGEA_GAP_V4backendon/offofflets the launch worker launch v4 coins and runs the v4 watchdog; existing v4 coins are recorded and swept either way
FACTORY_V4, FACTORY_V4_BLOCKper chain envaddress; blockunsetthe chain's immutable v4 factory: the launch worker, the registry, list-launch, the EVM fee sweep, the gas keeper and the supply mirror read it (v3's delivery, DVN and arb do not)
FEE_COLLECTOR_V4per chain envaddressunseta v4 collector apart from v3's, if any: the launch-id-in-use check and the stranger-payment check read it; it never marks a launch paid (the ticket's own collector does)
GAP_V4_HOLD_ALERT_S, GAP_V4_REPEAT_Sv4 watchdogseconds900; 21,600how long a send may go without an arrival before it is raised, and how often a lasting alert repeats
GAP_V4_COVER_BLOCKS, GAP_V4_WATCH_STATE_FILEv4 watchdogblocks; path2,000; the unit's state directoryhow far back a coin with no cursor starts the cover check; where what was said is kept
SWEEP_V4_MIN_QUOTEv4 Solana sweepquote base units100,000the least LP fee claim worth sending
SWEEP_V4_GAP_ADMIN_KEY_FILEv4 Solana sweepmust stay unsetunsetset = the sweeper refuses to start (G-OFF L-20: the GapConfigV4 admin key never goes on the sweeper host); the v4 bridge fee is reported, and withdrawing it is a manual owner step
PANGEA_KEEPER_MAX_STEP_BPSdeviation keeper, web build, SDK, botsbps, whole, 500 to 5,0005,000the largest raise the deviation keeper may post for one cost figure in one post (a bigger move goes in steps); every paid send adds max(15%, this) to its quoted fee and gets the unused part back in the same transaction; an invalid value: the keeper refuses to start
DELIVERY_V4_MIN_BACKUP_Sdelivery botseconds20the least wait before our keys back up LayerZero's executor on a v4 arrival
DELIVERY_PRIVATE_RPC_ETHEREUM, DELIVERY_PRIVATE_RPC_BSCdelivery botprovider listunsetsend deliveries through private relays on Ethereum and BSC
GAP_V4_DELIVERY_WARN_S, GAP_V4_DELIVERY_PAGE_Sv4 watchdogseconds300; 600the age of a Solana delivery figure at which the watchdog warns, then pages (read off the delivery account itself, beside the keeper's own alerts); it also says when the mode refuses, when charges wait to be swept and when no fee recipient is set
KEEPER_V4, KEEPER_V4_ALLOWANCE_PPMoptional keeperon/off; ppmoff; 22,000records only coins with an open gap beyond the allowance, at most once per third of the look-back, within a lamport budget for each 24 hours
E.3

v4 API map

E.3
RouteWhat it does
POST https://www.pangea.trade/api/v1/launch/v4/openYour own wallet's launch of a queued coin on one chain.
POST https://www.pangea.trade/api/v1/launch/v4/open-laterOpen another listed chain later.
POST https://www.pangea.trade/api/v1/launch/v4/registeredList a launch once it is mined.
POST https://www.pangea.trade/api/v1/launch/v4/tokenomicsTurn tokenomics on or off on one chain.
POST https://www.pangea.trade/api/v1/launch/v4/handoverMove or renounce the creator role.
POST https://www.pangea.trade/api/v1/launch/v4/sponsored/prepareQuote a platform launch.
POST https://www.pangea.trade/api/v1/launch/v4/sponsored/submitHand a paid platform launch over.
GET https://www.pangea.trade/api/v1/launch/v4/sponsored/readinessWhich chains a platform launch can open now.
POST https://www.pangea.trade/api/tokenomics/v4/switchA coin's tokenomics switch on one chain.
GET https://www.pangea.trade/api/v4/abiEvery v4 ABI and IDL.
GET https://www.pangea.trade/api/v4/contractsEvery v4 address, per chain.
https://www.pangea.trade/api/bridge/v4/…Bridging a v4 coin: quotes, arrivals, history.

Each route's body, answer and limits: v4 from a program →

E.4

v4 from a program: open, open later, list, tokenomics, handover

E.4

Each is a POST with a JSON body and passes the same gate as every other Launch API route: the optional X-Pangea-Key and its address allowlist, the flood ceiling, the rate-limit headers and the per-key usage record. They are counted with the chain-read steps (authorization, pay, submit, kit and the v4 sponsored submit): 300 in ten minutes per address in all (unless the site sets another figure), none with a partner key; a custom key may set its own limit per route (v4-open, v4-open-later, v4-registered, v4-tokenomics, v4-handover). A browser page on another site is refused (403). Nothing is signed or sent: each answer is for your own wallet.

POST /api/v1/launch/v4/open

  • Body { launchId, chain } (at most 4 KB): the launch id (32 bytes of hex) of a queued launch whose ticket gives the creator their own v4 leg, and that leg's chain, its pay chain: ethereum, base, bsc or robinhood.
  • Answer { pre, tx, owed, quote, via, takeoverAt }: the transactions the creator's own wallet (the ticket's creator) sends in order, every observation-cardinality bump of the pool still owed (pre, each mined before the next) and then the open itself (tx), priced now. Send before takeoverAt; after it Pangea's launcher sends that leg.
  • Refused: 400 for a bad launch id or chain; 404 when no launch with that id is queued; 409 when the leg cannot be built for you, for example when the ticket does not verify or is another launch's, the launch has no v4 leg of the creator's, the chain is not its pay chain, the leg was launched already or dropped, is not ready yet, or its time is up; 424 when the queue or the chain cannot be read just now (try again).
  • This is not an open-later: it only sends the creator's own leg of a launch still queued, on its pay chain, before takeoverAt. Opening another listed chain of a coin already launched, at any time, is POST /api/v1/launch/v4/open-later.
  • Where v4 is switched on (NEXT_PUBLIC_GAP_V4=on); 404 otherwise. Once it is mined, list it with POST /api/v1/launch/v4/registered.

POST /api/v1/launch/v4/open-later

  • Opens another listed chain of a coin already launched, at any time, as the coin page's Open a listed chain card does. Two steps, each a POST with { id, chain, step } (at most 32 KB), id being the coin's slug, launch id or token address and chain one of its listed chains not open yet. Each answer is { ok: true, step, txs, next }: unsigned transactions for your own wallet, in order, each one decoded back and compared with what you asked before it is answered.
  • Step "authorize", by the coin's current creator (anyone once the role is renounced), on the coin's home chain. EVM home: { caller, opener, payout?, days? } answers authorizeOpen on the home chain's shared bridge for caller (refused 403 for anyone but the current creator), priced with the bridge's own quote, lasting days (1 to 7, default 7). Opening Solana when the coin names no Solana payout wallet yet needs payout (a Solana wallet): the answer then starts with transferCreator, which sets it and keeps the EVM wallet, and that one must be mined before the authorisation is sent; opener defaults to payout.
  • Solana home (opening an EVM chain): { pusher, opener, deadline?, payout?, payoutSet? }, pusher being the coin's Solana creator wallet. A coin that names no EVM payout wallet yet first gets, with payout (an EVM wallet), the Solana transfer_creator that sets it and keeps your Solana payout wallet; once it landed, ask again with payoutSet: true. Then the answer is the shared bridge's open authorisation sent from Solana for the EVM opener, until deadline ("1h", "1d" or "7d", default "1d"), with its fee (Hyperlane: at most) in feeText.
  • Step "open", by the authorised wallet (or the original creator within the coin's first hour). An EVM chain: { opener, price, quote?, openingBuy?, devBuys?, buys? }, price being your opening price in the quote per coin (native when quote is left out), openingBuy an optional own buy in the quote and devBuys ([{ recipient, amount }]) your own buys split to other wallets. Launch buys of OTHER wallets ride the same open (owner rule: launch buys and the bundle kit at every launch kind, open-later too): ask first with askFor ([{ payer, quoteAmount, minOut?, recipient? }], same price and quote): the answer { step: "asks", asks, typedData, termsHash } is what each payer signs (an EIP-712 LaunchBuy over this open's terms) after approving the launch core for its amount; then send their signatures in buys ([{ payer, recipient, quoteAmount, minOut, deadline, nonce, sig }]). Every signature is checked against this open's terms before anything is built, and every buy is decoded back from the open and compared. On a native quote each other wallet deposits its amount first, refundable any time: the asks then carry funding: "deposit" and deposits (one depositLaunchBuy(nonce) transaction per payer, value = its amount); at the open every native buy's deposit is read and a short one is refused 409 with the deposit still to send. The answer names the bundle kit (bundleKitV4). The coin is read from a landed open on another chain and checked against its id; the answer is the quote approval when one is needed, then the launch core's open, simulated when nothing has to be mined before it. Solana: { opener, price, uri, openingBuy?, devBuys?, buys? }, price in USDC per coin and uri the metadata, fixed at the open; openingBuy your own buy and devBuys ([{ recipient, amount }]) and buys ([{ wallet, amount, minOut? }]) your list of buys to other wallets, in USDC, all funded by the opener in the same transaction; the answer is one Solana transaction for opener, which must be the authorised wallet, before the deadline. Launch buys of OTHER payers on Solana: coBuys ({ payers: [{ payer }], entries: [{ payer, wallet, amount, minOut }] }, at most 5 co-payers, never together with your own list): the answer is ONE version 1 transaction that the opener and every co-payer sign (each from its own USDC). Step "kit" (EVM): { launchRaw, buyRaws, preRaws?, targetBlock? }: your open signed and not sent plus the buyers' own signed buys; the answer is the bundle (Ethereum, BNB Chain: one eth_sendBundle, the open first) or the ordered send plan (Base, Robinhood: no bundle relay, same block usual, not guaranteed).
  • Launch buys and the bundle kit at open-later (both, as at every launch). Native-quote buys of other wallets are paid from each payer's own refundable deposit: the asks answer each payer's deposit transaction, step "open" answers 409 with every missing deposit (deposits[], only the shortfall) until all are funded, and step "deposits" with { payer, nonces? } lists a payer's deposits on that chain with their withdraw transactions, at any time. Solana: co-buys of other payers ride the open in one v1 transaction, up to the co-payers that fit its shape (5 with USDC, fewer with a Token-2022 quote). The Solana bundle kit: step "open" with kit: true answers the held open (signed, not sent; it answers salt and mint), step "kit" with { opener, salt, launchWire, buyers, tip } answers the kit buyers' transactions to sign, and with buyerWires the Jito bundle, launch first, every buyer transaction checked.
  • Refused: 400 for a bad field or step; 403 when the wallet may not do that step (not the current creator; not authorised for that chain yet, or the authorisation expired); 404 when the coin is not launched here; 409 when the chain is the home, open already or not listed, or the bridge or launch core refuses (said); 424 when a chain cannot be read right now (try again). Once the open is mined, list it with POST /api/v1/launch/v4/registered.

POST /api/v1/launch/v4/registered

  • Body (at most 1 KB): { chain, txHash } for an open mined on an EVM chain, or { chain: "solana", coinId } for Solana. The server reads the receipt, or the shared bridge's coin record on Solana, itself and lists the open from what it reads, never from the request.
  • Answer { slug, coinId }. A chain already listed is never replaced, so sending the same open again is harmless.
  • Refused: 400 for a bad chain, hash or coin id; 409 when it cannot be read or recorded yet (try again in a minute) or is not a v4 open of this site; 422 with code: "NOT_LISTABLE" when the coin is open on chain but the site will not list its name or symbol (a retry will not help).

POST /api/v1/launch/v4/tokenomics

  • The tokenomics switch of one chain (POST /api/tokenomics/v4/switch behind this gate). Body (at most 1 KB) on an EVM chain: { id, chain, op, caller, vault?, settle? } with op "enable" (with vault, an existing tokenomics vault), "disable" or "clear". The answer is { ok: true, tx: { to, data, value } } for caller's wallet, or 409 { ok: false, error, why } with the launch core's own refusal. The creator may only turn it on, while it is off and the role is not renounced; disable, clear and the admin's on or re-point are the platform admin's.
  • On Solana the ops here are the platform admin's: "enable" (on or re-point, vault = the tokenomics account) and "disable" answer { ok, ixs, lines, facts }, "clear" answers { ok, ix }; a wallet that is not the admin is refused (403 on enable and disable, 409 on clear). The creator's own Solana enable is the coin page's, not this route.
  • The role push after a handover is sent from the coin's home chain, whichever it is. EVM home: op "push" { id, chain, caller } builds pushCreator on the home chain's shared bridge that copies the creator role to chain (another open EVM chain or Solana), for the caller wallet to send and pay (anyone may push). Solana home: op "push" { id, chain, pusher } builds the Solana transaction(s) that copy it to that EVM chain, for the pusher wallet to sign and pay. For both, op "role" { id, chain } reads the home's copy against that chain's, current: true once it landed. op "authorize" (Solana home only) adds opener and deadline (unix seconds) and builds the open authorisation from Solana; for an EVM-home coin it answers 409 and names POST /api/v1/launch/v4/open-later. An enable refused because the chain's copy of the role is behind answers 409 with the push to send first.
  • Refused: 400 for a bad field; 404 when the coin is not a v4 coin launched here; 409 when it is not open on that chain yet; 424 when the chain cannot be read right now.

POST /api/v1/launch/v4/handover

  • Body (at most 1 KB): { id, op: "transfer", newEvm, newSvm? } or { id, op: "renounce" }, id being the coin's slug, launch id or token address.
  • Answer { ok: true, op, chain, coinId, tx: { to, data, value }, push }: the transaction on the coin's home chain's shared bridge, for the current creator's own wallet (the bridge refuses any other). Without newSvm the coin's current Solana payout wallet is kept, read from the bridge. The home chain changes at once; push says how the other open chains follow: POST /api/v1/launch/v4/tokenomics { id, chain, op: "push", caller }, the push from that EVM home chain for your EVM wallet.
  • Refused: 400 for a bad op, id, newEvm or newSvm; 404 when the coin is not launched here; 409 when it is not a full-scope v4 coin, when the shared bridge is not deployed on its home chain here, and for a Solana-home coin: its handover is the shared bridge's Solana instruction, signed on the coin page, which this route does not build; 424 when the current role cannot be read (try again).
The open-later, registered, tokenomics and handover routes answer 404 unless the full-scope switch is on too (NEXT_PUBLIC_GAP_V4_FULL=on).
Sheet FQuestions
F.1

v4 questions

F.1

Do I choose LayerZero or Hyperlane?

No. Every v4 coin uses both, always. A route that touches Elysium uses Hyperlane only.

Which chains can my coin be on?

Six: Ethereum, Base, BNB Chain, Robinhood Chain, Solana and Elysium.

Do I have to open every chain at launch?

No. Open the ones you want now and the others later. Opening a chain later →

What does launching from my own wallet cost?

No launch fee. You pay each chain's gas.

Who earns the trading fee?

The platform takes 20%; the rest is the creator's.

How do holder rewards work?

On each chain you pick the reward token and the share holders get. One minimum holding applies on every chain and can be changed per chain later. Tokenomics →

What do PANGEA holders get?

On each chain, 40% of the platform's take, paid every 5 minutes. Equity share →

Can I hand my coin over?

Yes, at once, or renounce it. Handing over →

Is my coin's liquidity locked?

Yes, on every chain. No function withdraws it.