Hashling Whitepaper

v8, 2026-09-06. Live figures come from /api/coverage on hashling.xyz; static counts are deliberately not copied into this paper because the index changes continuously.

Overview

Hashling is three things on Robinhood Chain (chain ID 4663): a discovery layer for every launchpad token, a launchpad for creating new ones, and a trading front end for supported, verified markets.

Robinhood Chain launchpads use different market designs. Hashling and hood.fun begin on bonding curves designed to graduate into Uniswap v3. Flap begins on its Portal curve and migrates into Uniswap v2. Noxa and lemon launch directly into Uniswap v3 pools. Hashling indexes the token first, then attaches the venue and market evidence it can prove.

The two halves are the same argument. Of 10,870 tokens launched on this chain, 10,070 have never had a single trade. Many were never meant to succeed, test mints, bot spam, and duplicates are a real share of any launchpad’s history. But there is no way to tell which is which from a screener, because none of them appear in one at all. A venue that indexes every launch on the chain, including its competitors’, is a venue where launching means being findable on day one.

Discovery covers the whole chain and always will. Hashling ranks its own launches by the same query as everyone else’s.

The durable record is the project, not the contract. Contracts are something a project has, not what it is. At graduation the pool address changes; the project’s URL, chart, comments and history do not.

projects → assets/contracts → markets/pools → events/time-series

Hashling is non-custodial end to end. The discovery layer reads the chain and holds no user funds; every launch and trade is signed by the user’s own wallet. Deployed contracts apply the published launch and trading rules on-chain. External venue routes use that venue’s contracts, with the selected route and costs shown before the wallet prompt.

Status: the discovery layer is live at hashling.xyz and indexing today. Factory V1 at 0x3b38c6Fa9Cc41d3A20d64111325231E7dEF7D523 remains unchanged for existing projects. Factory V2 at 0xC73A79A974fD175927b6b87C86d57081c9d2F3C9 is deployed and used for new launches. HashlingSwap V3 at 0x16Bc3720C90c3d5b5B99acf2Df746bAC03Cb53a1, HashlingV2Swap at 0x84a7280190012DF7C03B1a137890ff27a1dF9bbB and HashlingV4Swap at 0x7dD8a784e555afdf0028e309782dedc4564e96FF (first Pons factory) and 0x7d0e8bcff4267f6b17a2257d60f0e86a41ca4752 (official Pons factory) power the supported in-page pool routes. Contract source, deployment records, and test evidence are public.

Coverage

Live counts belong on the Coverage page and in /api/coverage, where their age and source are visible. Hashling currently classifies hood.fun, Hashling V1, Hashling V2, Noxa, Flap and lemon from on-chain evidence. Tokens from other deployers remain visible as Other launchpads until an adapter proves their origin.

A venue badge is evidence, not branding. Hashling does not infer a verified venue from a token name, artwork, vanity suffix or third-party API. Factory counters and canonical transaction targets are published where they help users audit a displayed claim; internal factory radar, unconfirmed clusters and future integration priorities are not.

Fee schedule

There are two different fee layers: the fee charged by the market itself and, for in-page Uniswap pool orders, the HashlingSwap routing fee. They are shown separately so a route never looks cheaper by hiding one layer.

Hashling V2 bonding-curve economics Rule
Launch charge Gas only
Curve trade fee 1% of each buy or sell
Curve-fee split 80% creator / 20% protocol
Curve / pool allocation 80% / 20% of supply
Migration fee 0.25 ETH × supply ÷ 1 billion, plus 3% of the completed raise
Pinned V3 pool fee 1% per pool swap
Locked-position fee split 80% creator / 20% protocol
HashlingSwap pool route 1% of ETH in on buys or ETH out on sells

Hashling Direct V3 launch economics

Parameter Rule
Launch fee None; network gas only
Creator buy 0.001 ETH minimum; swapped into launch tokens, not charged as a fee
Supply Fixed 1 billion; offered as one-sided liquidity, with any unused mint remainder burned
Creator token allocation None; the creator receives only the tokens purchased by the creator buy
V3 pool fee 1% per pool swap
Hashling wrapper fee 0% through the canonical Direct V3 trading route
Locked-position fee split 80% creator / 20% protocol
Liquidity principal Permanently locked at launch; no transfer, withdrawal, owner, pause or upgrade function
Market used on Hashling Hashling-added fee Other execution fee
Hashling V1/V2 curveNone beyond the curve fee1% curve fee
hood.fun curveNonehood.fun contract fee
Flap curveNoneLive Portal protocol fee plus the token’s configurable buy/sell tax; included in the quote
Hashling Direct V3 poolNone1% Uniswap V3 pool fee
Lemon V3 pool1% through HashlingSwap1% Uniswap V3 pool fee
Other supported V3 pool1% through HashlingSwapThe selected pool’s displayed fee tier
Graduated Flap V2 pool1% through HashlingV2SwapCanonical V2 pair and token mechanics
Graduated Pons V2 pool (Uniswap V4)1% through HashlingV4Swap, in the pool’s quote assetThe Pons hook’s own cut

At the default 1 billion supply and 6.5 ETH raise, Hashling V2’s migration fee is 0.445 ETH. At the minimum 1 million supply and 0.0065 ETH raise, it is 0.000445 ETH. Scaling the flat component with supply keeps the migration burden at the same proportion across the supported range.

Hashling’s standard pool wrapper is optional at the protocol level: a user may call the matching V2 or V3 Router02 directly and avoid its 1% fee. Hashling Direct V3 pools use a separate zero-fee HashlingSwap route in-page, so only the pool’s own 1% fee applies.

A flat fee denominated in ETH grows in dollar terms whenever ETH appreciates. That applies to Hashling’s 0.25 ETH flat component exactly as it applies to anyone else’s, stated here so the exposure is understood rather than discovered.

Validation benchmarks. The Factory V2 launch-system release passes 59/59 optimized tests, including 5,000-run fuzz campaigns and 512 invariant runs at depth 100. HashlingV2Swap is tracked separately: 8/8 property and unit tests plus 2/2 live-fork parity tests. HashlingV4Swap, the Uniswap V4 route for graduated Pons V2 tokens, is tracked separately as well: 12/12 property tests plus 2/2 live-fork tests.

Graduation

When a curve’s real ETH reserve reaches its raise target, the token is eligible to graduate: the raise (less the migration fee) and the amount of reserved supply required at the frozen closing price move into a pinned 1% Uniswap v3 pool. Any excess tokens are burned, and the liquidity position is locked: no withdraw function, no owner, no admin.

graduate() is permissionless and retryable: anyone may call it after the target is met, and no owner, deployer, creator, keeper or site approval is required. Reaching the target freezes curve trading in GraduationReady; migration then completes when an eligible caller submits graduate() or correctAndGraduate(). A scheduled gas-only keeper submits ordinary graduate() calls and, after the immutable seven-day deadline, activateRefund(). Its fixed code sends no value and cannot correct prices, trade, withdraw reserves, redirect fees, or exercise authority unavailable to every other address.

Factory V2 creates each token and its pinned pool atomically using a CREATE2 address derived inside the launch transaction. This prevents an ordinary earlier transaction from targeting the address, but it is not cryptographic secrecy from a same-block block builder with ordering control. If the pool price later moves outside the closing-price tolerance, any caller may supply a capped correction and graduate in the same transaction; an insufficient cap reverts the whole attempt without changing the frozen curve.

An invalid pool-price report or a failed real migration attempt starts a seven-day countdown. At the end, a valid-price migration is retried: success graduates, while another failure unlocks permanent pro-rata reserve redemption. The complete real ETH reserve is divided across redeemable tokens using one fixed formula, claims never expire, and each claim is rounded down independently. The resulting rounding dust remains unreachable, and there is no sweep or rescue path. This pro-rata price may be lower than the curve’s last quoted price: all holders receive the same reserve price per token, so early and late buyers may fare differently relative to what they originally paid.

Factory V2 is deployed and canary-validated on mainnet at 0xC73A79A974fD175927b6b87C86d57081c9d2F3C9. This release routes new Hashling launches to V2. V1 remains unchanged for its existing projects.

Trading

Every token Hashling finds gets a page. A Buy / Sell button appears only when Hashling has a verified route for that market; unsupported markets remain indexed without inventing a transaction target.

Hashling and hood.fun curves. A Hashling token trades against the Hashling factory; a hood.fun token trades against hood.fun’s verified factory. The launchpad’s own fee split applies and Hashling does not add a routing fee.

Flap curves. A bonding Flap token trades directly against Flap’s verified Portal. Portal quotes include protocol fees and the token’s configured buy or sell tax. The Portal is an upgradeable third-party contract, and Hashling identifies it as such before sending the order.

Uniswap v3 pools. Once a curve graduates, or when a token was launched straight into a pool, its market is a Uniswap v3 pool, and no launchpad front end on Robinhood Chain reaches those. Hashling does, through HashlingSwap: a dedicated contract that takes a 1% fee and forwards the order to Uniswap’s SwapRouter02. Buys pay the fee from ETH in; sells pay it from ETH out. The pool is discovered live, every standard fee tier is queried and the deepest wins, so a token is tradeable the moment anyone provides liquidity, with no listing step. Real projects that people put work into keep a market even when the venue that launched them is gone; that is the reason this exists.

Uniswap v2 pools. Flap graduations and their V2 pools are indexed into the same chart as their Portal curve history. After the Portal reports graduated status and its pool matches the canonical V2 factory, HashlingV2Swap at 0x84a7280190012DF7C03B1a137890ff27a1dF9bbB routes buys and sells. It adds 1% of ETH in or out; direct Router02 use remains available without that fee. Its validation evidence is tracked separately from Factory V2: 8/8 property and unit tests plus 2/2 live-fork parity tests.

Simulate first, always. Every order, curve or pool, is simulated against the node before it reaches the wallet, and a refusal is explained in plain English (max-holding caps, slippage, insufficient balance) instead of “unknown RPC error”. Supported curve and pool orders currently apply fixed 5% maximum slippage protection; pool orders also carry a short deadline. Nothing is sent that the chain has not already said it will accept.

Chain-first discovery

Discovery reads raw chain data. A generic scanner finds every contract deployment in a block range; venue adapters only classify what the scanner already found.

Two consequences follow, and they are the architectural point of the product:

Launchpad APIs and block explorers are cross-checks and outbound links. They are never a dependency for a token’s existence or its history.

Lifecycle

Status is derived in one place (src/core/lifecycle.ts) and never written by ingestion. States and permitted transitions:

State Meaning
unclassified Deployment found, venue not yet identified
hatched Launched, never traded
bonding Curve has taken value
near_graduation Curve close to full; can fall back
abandoned Traded once, then went quiet
graduated Terminal. Set only by an observed on-chain graduation

graduated is never inferred from a bonding percentage. near_graduation can revert to bonding, because a curve can and does empty out.

Two confidence tiers, never conflated

One launchpad on this chain grinds CREATE2 salts so its token addresses end in 600d. That suffix is a useful hint and nothing more, anyone can grind it for the cost of some CPU.

Tier Basis Badge
factory_verified Deployed by a known factory contract, read from chain Yes
suffix / heuristic Address pattern or metadata match No

A token wearing the 600d suffix that the factory did not deploy is an impersonation signal that no API-sourced screener can produce, because the launchpad’s own API will simply not return it.

The defence is not moderation; it is that the deployment transaction is a fact and a name is not.

Artwork is on-chain, so Hashling renders it

Creators supply artwork at launch and it is written into the token’s on-chain metadata. Hashling decodes it from there during ingestion.

This is a mechanism claim, and it is checkable: pick any recent launch, decode its on-chain metadata, and compare it to the tile on the board. The art a creator embeds at launch is part of the launch transaction itself. Reading it from chain metadata rather than from any venue’s asset pipeline means it cannot go missing on a project’s most important day.

Recorded history

Hashling snapshots every tracked project on a fixed tick and stores the time-series in D1. Snapshots are written on change, so a quiet chain writes no rows, silence is not a gap.

This is the one asset that cannot be backfilled, by anyone, including us: nobody can go back and record what a curve looked like on a day they were not watching. That is a property of the method, not a claim about depth, the series starts 2026-08-09 and is exactly as long as it has been running.

Movement queries (30m–14d) are answered from that series, with one rule that matters more than the feature:

When the requested window is longer than the recorded history, the API returns full_window_covered: false rather than reporting zero movement.

“Nothing moved” and “we cannot see that far back” are different claims, and a data product that conflates them is not one.

The same discipline governs alerts, which ship as three surfaces over one query: a page, a JSON API, and RSS, global, or per project. Fields are named *_bonding_pct, never bare pct, because on a bonding curve a 25-point fill move is not a 25% price move and a feed reader cannot tell them apart. Every item carries the ETH size beside the percentage, because a percentage alone cannot distinguish one buy from fifty. Responses carry truncated, qualifying and count, so the feed can never publish a number it cannot back.

Delivery is deliberately feeds, not subscriptions. There is no account, no email list, and no record of who is watching what: a reader polls a URL. That is a privacy property, but it is also a durability one, a feed cannot be revoked by losing an account, and it costs the same whether one person subscribes or ten thousand do.

Ownership and speech

Two problems, one mechanism.

Claiming a project. A creator proves control by signing a message with the deploying wallet. The server recovers the signer. No admin access changes hands, no files are surrendered, nobody has to be trusted, which is precisely what the people who target new projects are asking for when they offer help.

Commenting on a project. To say something about a token, hold it. The server recovers the signer and reads the balance from the token contract itself. Nothing about the holding is taken from the browser.

Presenting the project. The same signature lets a creator set the project’s banner and replace its artwork, uploaded to Hashling’s own storage, or by URL, and its links. Nothing is pulled from any other venue’s servers: what appears on a Hashling page is what the chain says or what the creator supplied. When copycats appear, the real creator’s signature is the thing a copycat cannot produce.

Speaking as the project. A claimed creator can publish statements on their own page, updates, corrections, and, when copycats appear, “this other token is not us,” said exactly where buyers are looking. Statements are dated and append-only: earlier ones stay readable and nothing is overwritten, so the record is trustworthy precisely because it cannot be quietly edited.

The stake is share of supply, never a dollar amount. Most tokens here have raised under 0.01 ETH and have no meaningful price at all; a wallet holding 33 million of one shows $0.00. A dollar threshold would be both unmeasurable and purchasable for pennies. A supply threshold needs no price feed.

This also scales the right way against an attacker: to spam a hundred projects you must buy a hundred tokens. Cost rises with the breadth of the attack, which is not true of any subscription-priced verification.

Creator identity is read from the creation transaction’s sender, not from the launchpad’s creator field, on a community launch that field is a contract, not a human. Hashling therefore agrees with what the explorer already shows rather than asserting a fourth answer.

Placement can be bought for a few dollars and is proved by signature: no account, no application, no relationship with anyone.

The core tracker stays fully useful without payment. There is no pay-to-hide and no paid ranking.

Limits

Stated here rather than left to be discovered:

Disclaimer

Crypto assets can be highly volatile, and blockchain transactions are generally irreversible. Nothing here is financial advice or an endorsement of any project. Review the route, amount, token, and destination in your wallet before signing.

Contracts and support

Contract addresses, deployed configuration, source, and validation benchmarks are collected on the Contracts page. For questions or concerns while navigating Hashling, join Discord or email support@hashling.xyz.