chartpad.fun
Open app ↗
Documentation

Robinhood Chain protocol guide

Mainnet
Chartpad documentation

Win the battle.
Take the liquidity.

A practical guide to launching, trading and settling on Robinhood Chain. Read the low-liquidity and fee rules before using the app.

Current networkRobinhood Chain.

Chain ID 4663. ETH for gas. Transactions use real assets.

Charty
01
Protocol guide

Arena lifecycle

Chartpad is a token launchpad on Robinhood Chain. Fresh tokens compete in a fixed-duration battle. The winner captures the losing side's remaining protocol-controlled ETH reserves. Tokens cannot be entered into another event after their original battle.

This build runs on Robinhood Chain, chain ID 4663. Gas, trades, developer buys and promotions use ETH. The app does not use Solana, Helius or Raydium for new launches.

At the deadline, both battle curves stop accepting trades immediately. Chartpad's settlement operator submits the result using the score already recorded by the contract. The operator cannot choose a winner, edit either score or extend the clock. A winning token moves to its winner curve and, once eligible, to Uniswap. A draw is handled separately.

02
Protocol guide

Battle formats

Duels, Team 2v2 and Team 3v3 are available launch formats. A duel creates two fresh tokens. Team modes create four or six fresh tokens in one transaction, split evenly between a blue team and a red team. Tournament mode is Coming soon and cannot be selected or launched.

A team result uses the combined time-weighted score of every token on each team. The winning team's tokens all survive. The losing team's combined eligible ETH reserve is divided equally among the winning tokens, with every remaining wei assigned deterministically. Each winner then follows its own migration path into a separately locked Uniswap v3 pool.

This factory only creates new tokens. It cannot enroll an existing token, challenge a champion or place holders into a new battle. The creator and platform admin cannot override this restriction.

03
Protocol guide

Launching tokens

Choose the required token names, globally different tickers and a duration. A duel needs two fresh tokens, 2v2 needs four, and 3v3 needs six. Presets are one hour, six hours, 24 hours and three days. Custom durations are supported from one hour through 30 days. The contract enforces those limits, not just the form.

There is no required base stake or creator-funded starting liquidity. Each side begins with zero real ETH reserves and the same virtual pricing reserves. The launching wallet pays network gas plus a 0.0001 ETH contribution toward the arena's settlement and migration transactions.

The factory sends that automation reserve directly to the fixed settlement operator during creation. It never enters either bonding curve, is not part of the captured liquidity and is not platform revenue. A launch can still use zero developer buys.

Initial developer buys are optional and independent for each token. Leave either one off, or enter an exact ETH amount. Both buys execute inside the creation transaction, after the tokens are created and before anyone else can trade. Bought tokens go directly to the launching wallet. Normal curve fees apply. If any part fails, the entire launch reverts.

Every launched token can have an optional website, X profile and Telegram link. Chartpad verifies the entered URLs, commits them to the launch transaction and keeps them attached to the correct token. The active token's links appear on its battle page, and a completed battle keeps the winner's links beside its market.

Token names and tickers are stored on-chain. Each token starts with one billion units and 18 decimals. 950 million tokens form the curve inventory; the remaining 50 million are reserved by the battle contract. Optional PNG, JPEG, or WebP token logos are stored in Chartpad's public media storage after the creator signs an authorization message. Only the arena creator wallet can replace them.

04
Protocol guide

Bonding curves

A bonding curve quotes buys and sells using token inventory and a 0.1 virtual ETH reserve per side. Virtual ETH is a pricing parameter, not deposited money, redeemable backing or spendable liquidity.

Buys add real ETH after fees and release tokens. Sells return tokens to the contract and withdraw real ETH after fees. A sell that cannot be backed by the real reserve fails; virtual reserves cannot fund a withdrawal.

During a battle and while waiting for migration, token transfers must involve the battle contract. Holders can buy and sell through the curve, but cannot freely transfer tokens or use a separate DEX. Successful winner migration permanently unlocks ordinary ERC-20 transfers for the winner. The losing token's official curve is closed and its remaining contract-held inventory is burned.

05
Protocol guide

Trading

Connect an EVM wallet such as MetaMask. Chartpad requests Robinhood Chain and checks the chain before transactions. Wallet account or network changes clear the displayed account state so stale balances are not reused.

The real battle page reads token balances and quotes from contracts. Buy amounts are ETH; sell amounts are token units. All sells use the exact integer token balance rather than a rounded display number.

Selling may require a separate token approval. Chartpad requests only the entered sell amount, not an unlimited allowance. A Uniswap sell quote may need that approval first. Trades include a minimum output with a 2% slippage allowance and a five-minute deadline. Network gas is separate from trading fees.

A wallet signature request is not a confirmed trade. Wait for the successful receipt and use the explorer link. Rejected wallet requests, failed transactions and stale quotes are not recorded as successful trades. Homepage battle links always open the corresponding indexed mainnet arena.

06
Protocol guide

Scoring and winner

The winner is selected from time-weighted curve prices accumulated from launch until the battle expires. Because both competing tokens have the same initial supply, comparing those time-weighted prices is equivalent to comparing their initial-supply market caps. The score is denominated in native-chain units, not a USD feed.

Each trade first accrues the previous price over the time it existed, then changes reserves. Settlement accrues the remaining interval up to the deadline. The score does not need an hourly server sample, an admin-entered result or a final-block spot-price snapshot.

Battle pages turn the two raw protocol scores into a 100-point split so the lead is readable at a glance. For example, a side holding 54.1 percent of the combined protocol score displays 54.1 points. The page also shows each raw ETH-seconds value. Scoring begins immediately, updates as block time advances and remains provisional until settlement. A dev buy changes the opening price immediately, while its time-weighted advantage accrues over the seconds that follow.

TWAP reduces last-second price manipulation; it does not make manipulation impossible. A funded trader can influence prices for longer periods. The production operator should monitor scoring, settlement and migration outcomes closely.

An exact score tie is a draw. No liquidity is captured and no side is chosen arbitrarily. Both original curves reopen against their own real reserves. Draws do not enter the winner migration path in this test release, and neither token can re-enroll.

07
Protocol guide

Settlement

Duel settlement fixes the result and atomically adds every wei remaining in the loser's real curve reserve to the winner's reserve. Team settlement combines every losing reserve and divides the full amount equally across the winning tokens. It does not take ETH from user wallets, recover prior sales or capture money that is no longer in the event. Trading fees already paid or accrued are excluded from battle reserves and are not part of the prize.

After settlement the loser's real reserve and curve inventory are both zero. Losing holders keep the token balances already in their wallets, but the losing token never unlocks, its official curve is permanently closed, and it has no Chartpad or Uniswap liquidity. Those balances cannot be sold or transferred through the official protocol.

Normal settlement is automatic and traders never need to approve it. Every new arena contributes 0.0001 ETH to the fixed operator when it is created. The contribution is kept outside the battle contract and is not part of either token's liquidity.

The admin page keeps a recovery control for infrastructure interruptions. That recovery transaction cannot choose the winner, edit the clock, seize holder tokens or withdraw locked Uniswap principal.

08
Protocol guide

Uniswap migration

Time decides when the competition ends. Liquidity decides whether a real exchange pool is usable. These are separate conditions. The factory fixes the migration minimum at 0.01 ETH of real reserves in the winning curve, including captured reserves.

If the winner is below that minimum, settlement still happens on time. The winner keeps trading on its bonding curve and its status says Awaiting liquidity. New buys can bring the reserve above the minimum; sells can lower it again. A trade count is not a substitute for available liquidity.

There is no fixed dollar requirement. A native ETH threshold avoids reliance on an unavailable or stale USD oracle. Gas paid by the migration caller is not taken from the threshold.

When eligible, Chartpad's operator submits migration automatically. The transaction creates or initializes a Uniswap v3 pool, wraps real ETH to WETH, deposits liquidity, locks the full-range position in the battle contract, and unlocks winner token transfers. It selects token amounts to preserve the winner curve's spot price as closely as integer rounding permits. Unused contract-held winner inventory is burned. Tiny unused ETH rounding dust is sent to the platform treasury.

Mainnet migration uses Robinhood Chain's official Uniswap v3 factory at 0x1f7d7550b1b028f7571e69a784071f0205fd2efa and WETH at 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73. Chartpad does not deploy substitute exchange infrastructure on mainnet.

Migration is atomic. If pool creation or funding fails, the winner remains on its curve and no partial transfer is committed. An empty pre-initialized pool can be reset during migration. A previously funded, conflicting pool can delay migration; this release fails safely instead of accepting an arbitrary hostile price.

The migration transaction deposits the full winner reserve subject only to integer rounding needed by Uniswap. Any tiny unused ETH remainder goes to the fixed platform treasury. It is not retained by the loser, and the loser does not regain a trading path.

09
Protocol guide

Trading costs

Before migration, each curve trade charges 1.15% total. Fees are excluded from real battle reserves, so the reserve shown on each token card is the amount that can back sells or move through settlement. Network gas is separate.

The public battle page does not publish platform revenue or another creator's accounting. A creator sees private controls only after connecting the wallet that launched that arena.

After migration, the selected Uniswap v3 pool has a 1.00% trading fee and Chartpad adds no extra interface fee. The battle contract owns a permanently locked full-range liquidity position. Its earnings are handled according to the protocol configuration without removing principal.

Pool earnings remain in the pool assets, winner tokens and WETH, rather than being automatically converted into ETH or dollars. Trades in unrelated pools do not generate earnings for Chartpad's locked position.

10
Protocol guide

Homepage promotions

Promote during creation or visit /promote later with your battle address. Connect the wallet that created the arena, review the fixed platform treasury and approve payment. The factory sends payment directly to that treasury; the verified receipt activates the homepage listing automatically. Receipt retries never require a second payment.

A permanent homepage listing costs 0.05 ETH. Each bump costs 0.0025 ETH and moves the listing up by its confirmed payment time. Payments use ETH, plus network gas.

The creator can add a listing during creation or purchase it later from the battle page. A bump moves an existing listing up using the confirmed payment's block time. Paid listings have no expiry. The payment goes to the fixed platform treasury.

Promotion is verified against a confirmed event emitted by the active Chartpad factory. A payment for one battle cannot activate another, and a transaction cannot be counted twice. If a payment succeeds while indexing fails, retry indexing the same transaction; do not pay again.

Promotions are labeled sponsored placements. They do not change scoring, extend a timer or buy the Main Event position. Admins can curate, pause and remove homepage placements; curation does not move token funds.

11
Protocol guide

Discovery and IDs

Each duel has a shareable /battle/address page and every team event has a /team-battle/address page with charts, transactions, token selectors, wallet balances and trade controls. Search results open the correct page directly. You can search indexed launches by token name, ticker, token contract, creator or battle address.

Battle pages lead with estimated USD market cap and a readable USD price per one million tokens, with the per-token USD price underneath. Real curve reserves and migrated liquidity remain shown in ETH because those are the actual on-chain assets.

Charts show confirmed execution prices converted to USD, including curve trades and swaps in the official winner pool. One shared ETH reference rate is cached for 15 minutes, so opening cards and charts does not create repeated price or chain RPC requests. The USD conversion is display-only and never affects TWAP scoring or settlement. After migration, the winner's current market cap uses the live Uniswap pool price rather than the closed curve reserve. Confirmed history is indexed from the battle's creation block and displayed in pages of 40 trades; use Load earlier trades to expand the table. An empty history never displays made-up prices.

A real battle's permanent ID is its EVM contract address. The battle link, token addresses and explorer receipts identify the exact launch. Search accepts battle addresses, creator addresses, token names and tickers.

The mainnet index records verified contract events and keeps each network separate from retired Solana data. The homepage ribbon, Main Event, arena directory, search and champion standings all read from the same confirmed mainnet index.

The transaction receipt and contracts remain authoritative when the searchable index is temporarily unavailable. The battle page offers indexing recovery without creating another transaction.

12
Protocol guide

Deployment and testing

Open Deployment from the app. Before deployment, the platform owner supplies an EVM admin address and chooses the platform treasury. Connect that admin wallet on Robinhood Chain and fund it with enough ETH for contract deployment gas.

The mainnet profile requires two wallet-signed deployments: the battle implementation and Chartpad factory. It pins the official Uniswap v3 factory at 0x1f7d7550b1b028f7571e69a784071f0205fd2efa and WETH at 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73, then verifies their deployed bytecode before activating launches. Robinhood Chain's official SwapRouter02 is 0xCaf681a66D020601342297493863E78C959E5cb2, and its position manager is 0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3. Chartpad trades and locks liquidity directly through the pool contract.

Test a launch with no dev buys, then one with buys on one or both sides. Use a second wallet to buy, approve a sell, sell part and sell All. Check the explorer and token balances after each transaction.

Wait for a one-hour test battle to expire. Verify that both trade controls stop and automatic settlement confirms the winner and captured reserves without a trader signature. Test a low-liquidity winner before and after topping up through buys. Verify automatic migration, trade both ways in Uniswap and confirm that locked liquidity remains unchanged.

Also test cancelled approvals, insufficient ETH, wrong network, expired quotes, ties, repeated settlement, repeated migration, hostile pool initialization, promotional payment recovery and a non-admin attempting admin actions.

The current factory must verify its fixed operator address and 0.0001 ETH lifecycle contribution before launches are enabled. Each new arena then funds the operator automatically. Battle pages trigger due work immediately, while the protected keeper endpoint supports a production scheduler. Scores and winners never depend on the operator.

The 0.0001 ETH mainnet contribution keeps the creator's launch overhead small. Settlement is inexpensive, while a first-pool migration can cost more during busier periods. Chartpad pools these contributions and maintains a platform-funded operator buffer so an individual creator is not charged the full migration cost.

13
Protocol guide

Performance and availability

Public battle snapshots, confirmed trade history, launch discovery and promotions use short edge caches. Simultaneous requests for the same live market share one upstream read where possible. Cache lifetimes stay short enough for active battle pages while preventing every viewer from repeating the same blockchain work.

Background tabs stop live polling until they become visible again. Connected-wallet balances refresh less often than public market state and refresh immediately after a confirmed transaction. Transactions and wallet signatures are never cached.

Battle discovery uses prefix search and indexed network, ticker, token, creator and creation-time fields. Confirmed trade history is stored in pages and only new blocks are scanned. A cold history request for the same arena is coalesced so concurrent viewers do not start duplicate scans.

Mainnet capacity still depends on a dedicated Robinhood Chain RPC plan with batch support, sufficient request volume and clear burst limits. Monitor RPC latency, error rate, D1 latency, cache hit rate, settlement delay and failed migrations. Raise capacity before marketing events rather than waiting for rate limits to appear.

14
Protocol guide

Production readiness

Production activation verifies Robinhood Chain mainnet, the official exchange dependencies and the exact Chartpad bytecode before launches can open. Unrelated chain IDs are rejected.

Mainnet has dedicated admin, treasury, operator authentication, RPC and deployment settings. Legacy environment values are never accepted as production fallbacks.

Production uses a staged release. The owner first enables deployment, signs and verifies the contracts, pins the exact factory address, proves the protected scheduler is operating, and only then enables public launches. A verified deployment does not automatically open the platform.

Chartpad does not use Helius webhooks. Retired Solana endpoints return a migration notice instead of accepting new activity. Use an EVM RPC provider and event indexing for Robinhood Chain.

15

Frequently asked questions

Does a winner have to raise $100?

No. The migration threshold is 0.01 real ETH, not a dollar amount or a number of trades. The battle still ends on time.

Can the creator put a champion back into a battle?

No. Existing tokens cannot enter this factory. There are no challenges or re-enrollment functions.

Does all loser liquidity go to the winner?

Yes. Every wei remaining in the losing curve reserve after prior trades and fees is added to the winner at settlement. The losing reserve becomes zero. Tiny Uniswap deposit rounding dust from the combined winner reserve goes to the treasury, never back to the loser.

Are trading fees part of the captured amount?

No. Battle pages show the real reserves available for sells and settlement. Trading fees are excluded from those reserves.

Do traders settle or migrate battles?

No. Chartpad submits these transactions automatically when they become available. The contract itself determines the result and destination of the liquidity.