How a twinis made.
Two paired launches with one name and one image. Not a bridge: nothing is locked on one chain to mint on the other.You sign on Solana. Our relayer launches on HyperEVM and pays the gas from the pad fee.
How it works
Solana: pump.fun, signed by you
The service builds one transaction: create_v2 (you are payer and creator), one pump.fun buy of your dev buy plus the burn leg, a Token-2022 burn of the burn-leg tokens, the fee transfer to the treasury and a memo twin:999:<twin address> signed by your wallet. The service signs only with the fresh mint key; your wallet adds its signature.
HyperEVM: Uniswap v4, launched by our relayer
Once your Solana transaction is final, the relayer calls TwinFactory.launch(): an ERC20 with the same name and ticker, 1,000,000,000 supply, a Uniswap v4 pool (native HYPE / token, 1% fee) holding the whole supply as liquidity that no function can remove. The pool opens at your Solana price.
Describe, Quote, Pay, Live: you type the name, ticker and image once; the quote shows what you pay on Solana and that HyperEVM costs you nothing; you sign; the page tracks the HyperEVM job until both CAs are live. Both sides have the same supply, so prices and market caps compare 1:1. The spread is only shown. Nothing on Twinlaunch promises arbitrage or income.
Fees
| who | pays | gets |
|---|---|---|
| you (Solana) | rent of the new coin, the pump.fun buy (your dev buy + 0.01 SOL burn leg, with pump.fun's own fees), 0.02 SOL to the treasury, the network fee | your dev tokens; the coin's pump.fun creator fees stay yours, untouched |
| treasury | - | 0.02 SOL per twin (new and existing coins) |
| burn leg | 0.01 SOL of your transaction | tokens burned in the same transaction: supply drops |
| relayer (HyperEVM) | launch gas (about 525k gas) | HYPE topped up from the treasury |
| you (HyperEVM) | nothing | half of the pool's 1% fee in HYPE, to the EVM address you give: claim() pays that wallet, claimTo(address) pays any other address you name (Launch, Mine) |
The pad fee is 0.03 SOL per new coin, paid inside the launch transaction. /api/config publishes the live values; the page checks the transaction it gets against them before your wallet opens.
What you sign
One Solana transaction, built by the service and re-checked in your browser before signing: the memo must name the twin address computed from your mint, the fee must equal the published treasury share, and only the published lookup tables may appear. The service then accepts only that exact message (its hash is bound to the prepared lease), so a changed transaction is refused. You never sign on HyperEVM to launch.
Signed and sent, a launch cannot be undone. If the transaction does not land before its blockhash expires, nothing is charged and the prepared mint key is wiped.
The HyperEVM job
After 32 Solana slots the job is queued. The relayer runs one job at a time: if the twin address already has code, it verifies it and marks the pair live without sending anything; otherwise it sends launch() when the base fee is at or under 10 gwei, after 15 minutes accepts up to 70 gwei, and above that waits (the page says "waiting for gas"). A transaction not mined in 30 s is re-sent with the same nonce and +15% fees.
| state | meaning |
|---|---|
awaiting_signature | prepared, your wallet has not signed yet |
confirming | sent on Solana, waiting to be final |
queued | Solana side checked, HyperEVM launch waiting for its turn or for gas |
sent | HyperEVM transaction sent |
live | both sides live, all three link checks passed |
failed | not live within 1 hour or 5 reverted attempts: refund by hand |
Refunds
If the HyperEVM launch has not gone live within 1 hour of your Solana payment, the job is marked failed and the pad fee is refunded by hand to the paying wallet. Nothing else is held for you.
Refunds are sent by hand by the team, not by a contract. Your Solana coin stays live on pump.fun either way.
How the pair is checked
Anyone can check that a HyperEVM token is the twin of a Solana mint:
- its address is
CREATE2(factory, keccak256(solanaMint)): one twin per mint, known before launch, a second launch of the same mint reverts; - the Solana launch transaction carries the memo
twin:999:<address>, signed by the coin's creator; - the ERC20 returns the mint from
solanaMint().
The twins list shows only pairs that pass all three.
Buy and burn, both sides
Solana: 0.01 SOL of every new coin's fee buys that coin on its curve, in the launch transaction, and the tokens are burned right there. HyperEVM: the keeper collects the pool's 1% fee; half goes to the creator, half to a burn reserve that buys the coin back in chunks of at most 0.5 HYPE (minimum out 1% under the quote) and burns it. All buybacks together are capped at 5 HYPE per rolling hour: the contract counts keeperHourSpent and reverts with HourCap above it, so a stolen keeper key cannot drain the reserve fast (live on Stats). If the keeper stops for 3 days, anyone may run a capped buy-and-burn. The spread itself is never traded by us.
Twin an existing coin
A pump.fun coin that is already live can get its twin if the wallet that signs is the coin's creator (read from its bonding curve). The transaction is the fee transfer (0.02 SOL, no burn leg) and the memo. Name and ticker are read from the coin's metadata and must fit the ERC20 (32 / 10 bytes). The HyperEVM pool opens at the coin's current Solana price.
Parameters
| name | value | what it does |
|---|---|---|
launch_fee_lamports | 0.03 SOL | pad fee per twin, paid inside your Solana transaction |
burn_fee_lamports | 0.01 SOL | part of the pad fee that buys your new coin in the same transaction and burns it |
max_dev_buy_sol | 50 SOL | largest dev buy in the launch transaction |
default_slippage_bps | 1 % | default buy headroom |
confirm_slots | 32 | Solana slots before the HyperEVM job starts (mainnet) |
max_fee_soft_gwei | 10 gwei | relayer sends at once below this base fee |
max_fee_hard_gwei | 70 gwei | highest base fee the relayer ever pays |
gas_wait_s | 15 min | wait for cheap gas before the hard cap applies |
job_fail_s | 1 h | a HyperEVM job not live after this is marked failed |
job_max_tries | 5 | reverted launch attempts before failed |
keeper_every_s | 10 min | keeper pass: collect LP fees, buy and burn |
burn_chunk_milli | 0.5 HYPE | largest buy-and-burn chunk on HyperEVM |
burn_slippage_bps | 1 % | buy-and-burn minimum out below the quote |
uri_max | 80 B | metadata link size (the transaction limit) |
image_max_bytes | 4 MB | image size |
prepare_per_min | 6 | launch prepares per minute, per IP and per wallet |
max_active_leases | 2 | open prepared transactions per wallet |
supply | 1,000,000,000 | both sides, so prices and market caps compare 1:1 |
pool_fee | 1 % | Uniswap v4 pool fee on HyperEVM, tick spacing 200 |
creator_bps | 50 / 50 | HyperEVM LP fees: half to the creator's EVM address, half to buy and burn |
keeper_cap | 0.5 HYPE | contract cap per buy-and-burn call |
keeper_hour_cap | 5 HYPE | most the keeper may spend on buy-and-burn in one hour, across all twins (the contract reverts with HourCap above it); live on Stats |
stale | 3 days | if the keeper stops, anyone may run a capped buy-and-burn |
start_ticks | 92200..184200 | HyperEVM start price range (about 10 to 99.8k HYPE market cap) |
Trust and risks
- No custody of your coin: we never hold your SOL after the transaction, your tokens or any liquidity. The HyperEVM liquidity sits in the factory with no function to remove it.
- The relayer key can only launch twins; the owner can only rotate the launcher, keeper and owner. No path to HYPE, tokens or liquidity. The factory cannot be upgraded.
- TwinFactory is not audited by a third party. Uniswap v4's PoolManager has an owner (protocol fee is 0 today). pump.fun can change its program and fees.
- No anti-snipe on HyperEVM: the pool is hookless for trading and anyone can buy at the open. The relayer's timing is public.
- HYPE for gas sits on our relayer key. If it runs low, launches queue and the page says so.
- Prices on two chains drift apart. The spread is shown, not closed by us, and nothing here is advice.
CA
$TWIN