TWINCAST DOCS
Launch one token on Robinhood Chain and Base. It gets the same address on both, its liquidity is locked in Uniswap v4 on each chain, and the fee split is written in the contract
01 · overviewOne launch, two chains
Twincast launches a token on Robinhood Chain, on Base, or on both. The token has the same address on each chain, so one contract address works everywhere
Each chain has its own full supply, its own pool and its own price. Nothing is bridged and no bridge is involved
- Chains
- Robinhood Chain (4663) and Base (8453)
- Address
- the same on both chains, ending in 2222
- Liquidity
- Uniswap v4 against native ETH, locked in the factory
- Launch fee
- none, gas only
02 · create2Why the address matches
├── factory deployed through the CREATE2 deployer 0x4e59…956C with the same code and salt, so it has the same address on both chains ├── router same, its only argument is the factory ├── token created by the factory with CREATE2 from keccak(launcher, salt) and the token code ├── token code name, ticker, metadata URI, router and launcher, nothing chain specific ├── result same launcher, salt and details give the same address on every chain
Because the launcher address is part of the salt, nobody else can launch a token at your address on the other chain. The site searches for a salt that makes the address end in 2222 before you launch
03 · priceThe curve on each chain
- Supply
- 1,000,000,000 tokens per chain, 18 decimals
- Curve
- 800M tokens in a single-sided Uniswap v4 position
- Opens at
- about a 1.00 ETH market cap
- Top of the curve
- about 16.19 ETH market cap, reached after about 3.23 ETH of buys
- Above the curve
- 200M tokens up to the maximum price
- Tick spacing
- 200
The factory owns both positions and has no function that removes liquidity
04 · routerBuying and selling
The Twincast router swaps native ETH for tokens and back on the chain you pick. Selling needs no approval, the token lets the router move your own tokens. Every trade has a minimum output, the site uses a 3% slippage limit. The pools have no hooks, so any Uniswap v4 interface can trade them too
05 · splitThe fee split is in the contract
- Pool fee
- 1% of every trade
- Launcher
- 50% of the ETH fees, claimable on each chain
- Protocol
- 50% of the ETH fees
- Robinhood Chain protocol share
- sent to the $TWIN buyback
- Base protocol share
- sent to the Twincast treasury wallet
- Fees paid in the token
- burned
├── collect anyone can call collectFees on a token, the keeper does it for tokens with at least 0.001 ETH waiting ├── claim the launcher claims ETH on each chain, anyone can push a claim to them ├── redirect the launcher can send its future share to another wallet with setFeeTo
06 · extendAdding the other chain later
A token launched on one chain can be launched on the other at any time. Only the original launcher wallet can do it, the site reads the salt from the first launch and checks the address before sending
07 · ownerWhat the owner can do
├── configure once per chain: the Uniswap PoolManager, the router and the protocol recipient ├── after that nothing, there are no admin setters on the factory ├── liquidity cannot be removed by anyone ├── fee split fixed at 50 / 50 in the code
08 · $TWINThe $TWIN buyback
On Robinhood Chain the protocol half of every fee goes to the buyback contract. Once $TWIN trades in its Uniswap v4 pool, the keeper spends that ETH on $TWIN through the Universal Router and the contract sends everything it bought to the dead address in the same transaction. There is no withdraw function
09 · tokenThe token
Twincast is a token on Robinhood Chain, launched through Pons. There is one contract, it lives in config.js on GitHub, and the site reads it from there.
- Chain
- Robinhood Chain, EVM
- Launchpad
- Pons
- Ticker
- $TWIN
- Role
- the Robinhood Chain protocol share buys it back and burns it