flys on X

//Reference

Docs

The protocol is one loop. You buy $FLYS on Pons, your address is tokenized into a fly, and from the next pulse that fly is airdropped a crumb of every tokenized equity in the Pons family — all 13, by weight, not by lottery. The pulse it first holds all 13 it fledges: it joins the swarm, its weight rises 35%, it compounds pheromone, and it gets a vote on where the next sweep leans. This page is the arithmetic behind that, and section 08 is the list of what is still a database row rather than a transaction.

Pulse

45s

sweep · airdrop · fledge

Family

13

equities to fledge

Min mass

25.0K

$FLYS to hatch

Vote steers

50%

of every sweep

01The pulse

The loop, precisely

One pulse always runs in this order. It fires from two places — the scheduled GET /api/pulse and lazily on API reads — so the hive row is claimed before any money moves and a second caller finds nothing to do rather than paying the swarm twice.
  1. 01

    Claim

    Due once 45s have passed. The hive row is taken by a conditional update carrying a 60-second lock; a caller that loses gets not-due or locked.

  2. 02

    Advance prices

    Every symbol steps one pulse along its seeded walk, scaled from its annualised vol. Previous close rolls only after a day's worth of pulses. Not quotes — see 08.

  3. 03

    Weigh the swarm

    Every SWARMING fly is weighed and the weights summed. Grounded flies weigh zero and take nothing.

  4. 04

    Size the sweep

    The hive sweeps 80% of $FLYS trading fees (8000 bps). In dollars: a $42.00 baseline times deterministic volume noise keyed off the pulse index, scaled by the log of the swarm's size. At zero total weight the pulse records itself and pays nobody.

  5. 05

    Resolve the drift

    The focus symbol is the one with the most weight behind it — votes tallied by the voter's weight, not headcount. An unvoted or tied swarm falls back to whichever equity the fewest flies hold, keeping the family from drifting out of reach.

  6. 06

    Allocate

    50% of the sweep splits evenly across all 13 equities; the other 50% piles onto the focus. The even half is deliberate — without it a popular vote would starve every other symbol and no new fly could finish its basket.

  7. 07

    Cut and split

    A fly's cut is the sweep times its share of total weight. Behaviour decides only where that cut lands: evenly, or concentrated onto the best mover, the worst mover, the hive's heaviest buy, or the hive's allocation pro rata.

  8. 08

    Credit holdings

    Dollars become quantities at the pulse's price, written as one upsert for the whole swarm that adds to both quantity and cost basis.

  9. 09

    Settle

    Any fly holding a positive balance of all 13 equities and not yet fledged fledges here. Pulse counts tick up; already-fledged flies gain 0.01 pheromone, capped at 2. An airdrop line is logged per fly, plus a fledge line for whoever got airborne.

  10. 10

    Release

    The pulse is recorded with its index, dollars swept, focus and flies paid; the hive total is incremented; the lock drops. On a throw the lock drops but the clock is left alone, so the next caller retries.

02Weight

What a fly’s claim is worth

Weight is the only thing deciding how much of a sweep a fly receives. Four factors, multiplied; a grounded fly short-circuits to zero.

weight = mass0.75 × caste pheromone × accrued pheromone × 1.35 if fledged

The exponent is the point. At power 0.75, a wallet a hundred times larger gets about 32 times the airdrop, not a hundred. Returns to size are sublinear on purpose: without it the swarm is one whale and a rounding error.

The rest is rolled or earned. Caste pheromone comes out of the artwork and never changes. Accrued pheromone starts at 1 and only compounds after fledging, 0.01 per consecutive pulse to a ceiling of 2 — about 100 pulses, or 1h 15m of flying. The 1.35× bonus is the only factor an operator earns rather than buys.

Mass×min massmass^0.75×min weight
25.0K1.0×2.0K1.00×
100.0K4.0×5.6K2.83×
250.0K10.0×11.2K5.62×
1.00M40.0×31.6K15.91×
4.00M160.0×89.4K44.99×

Both weight columns assume a Drone at pheromone 1, isolating the mass term. A fledged Broodmother at the cap carries 9.45× the weight of an unfledged Drone of the same mass. A grounded fly of any caste carries none of it.

03Castes

Rarity, and where it bites

A fly is derived from its seed — the buyer's lowercased address — by five weighted rolls: strain, wings, eyes, thorax, habitat. Rarity is the probability of the likeliest possible fly divided by the probability of this one, so the commonest colouring scores exactly 1 and nothing scores less. The score picks a caste, and the caste multiplies the fly's share of every airdrop for as long as it exists.
CasteRarity floorPheromoneRelative weight
Drone0×1
Forager27×1.25
Scout75×1.6
Sentinel200×2.2
Broodmother900×3.5

The trait tables produce 36,864 distinct flies. Floors come from the measured distribution, not a guess: roughly 55% come out Drones, 1% Broodmothers. One wallet, one fly — no re-roll, nothing to trade up into, and the founding brood of 128 on /collection runs through the same function, so it can be checked.

04Foraging

Where a fly’s cut lands

Behaviour is the only real decision an operator makes, and it is narrower than it looks: it moves where a cut lands, never how large the cut is. Concentration is a genuine cost, because a fly needs a positive balance of all 13 equities before it can fledge.
BehaviourWhat it doesConcentration
ScatterEven split across the whole family. Fledges fastest, wins nothing in particular.0%
DriftFollows the swarm's vote. You get the consensus basket, for better or worse.35%
CarrionOverweights the worst 24h performer in the family. Buys what everyone dropped.55%
ChaseOverweights the best 24h performer. Concentrated, and slow to fledge.70%
HiveMirrors whatever the treasury actually swept most of this pulse.45%

Concentration is the share of a cut piled onto one symbol; the remainder spreads evenly. At 0% a fly fledges as fast as the hive can feed it and wins nothing in particular. At 70% it is buying upside with the time it takes to get airborne — and the 1.35× bonus and all pheromone accrual sit on the far side of that wait.

05The basket

The Pons family, all 13

The family is exactly what Pons accepts as a quote token, which is the only reason this design is possible. When Pons lists another ticker it goes in the table, the basket widens, and no fly has to opt in.
SymbolNameKindFledge set
NVDANvidiaEQUITYyes
AAPLAppleEQUITYyes
HOODRobinhood MarketsEQUITYyes
TSLATeslaEQUITYyes
INTCIntelEQUITYyes
BABoeingEQUITYyes
RKLBRocket LabEQUITYyes
SNOWSnowflakeEQUITYyes
NETCloudflareEQUITYyes
LMTLockheed MartinEQUITYyes
CEGConstellation EnergyEQUITYyes
GLXYGalaxy DigitalEQUITYyes
RCATRed Cat HoldingsEQUITYyes
USDGGlobal DollarSTABLEno

The fledge set is the 13 equities only. USDG is the family's stablecoin and the settlement leg the sweep passes through, so no fly needs to hold it to fledge. The tape lives on /family.

06Auth

Signing in proves a wallet, nothing else

No transaction, no approvals, no gas. The wallet signs a plain-text message naming the site, the address and a single-use nonce; the server trades a valid signature for a session cookie.
  1. 01

    Request a nonce

    The client posts an address. The server mints a random single-use nonce, stores it against the lowercased address with a five-minute expiry, and returns it.

  2. 02

    Sign the message

    The wallet is asked to personal_sign a deliberately boring message: host, address, nonce, and a line stating that signing authorises no transaction and moves no funds. Nothing is broadcast and no allowance is granted.

  3. 03

    Burn, then verify

    The nonce is burned before the signature is checked, by a conditional update that only succeeds while it is unused. A replayed nonce therefore fails even when the signature is perfectly valid, and two requests racing one nonce cannot both win. Only then is the signer recovered and compared to the claimed address.

  4. 04

    Issue the session

    The wallet is found or created — a first-time wallet is credited 1,000,000 $FLYS, see 08 — and an HS256 JWT is set as an httpOnly, sameSite=lax cookie for seven days. The client never holds a token it could leak.

07Chain

Robinhood Chain

flys is here and not on another EVM chain for one reason: the tokenized equities a fly is airdropped are issued on this network, and Pons is the venue that lets a token launch against them. viem ships no definition for it, so the app carries its own.
Name
Robinhood Chain
Chain ID
4663
Currency
ETH
RPC
https://rpc.mainnet.chain.robinhood.com
Stack
Arbitrum Orbit · settles to Ethereum

Gas is paid in ETH; there is no native chain token. The app expects chain 4663, and every RPC URL is overridable because the public endpoint is rate-limited and explicitly not for production.

08Status

What is not real yet

Four things here are simulated. Better you read it now than work it out later; each one is a single seam, named so you can find it in the repository.

$FLYS is a ledger balance, not a token. No mint, no contract, no pool. Every wallet is credited 1,000,000 $FLYS the first time it signs in so the app is usable before the token exists. Mass, feeding and the 25.0K hatch minimum all move that number in a database column.

Prices are a seeded random walk, not quotes. Every figure on the tape comes from a deterministic per-symbol walk, stepped once per pulse from a starting seed and an annualised vol. Not market data, not delayed, not a feed — invented numbers with plausible variance. Nothing here should be used to value anything.

Airdropped balances are database rows, not transfers. Crediting a fly with 13 equities writes quantities and cost bases to a holdings table. No tokenized share moves, no wallet receives anything, and there is no settlement contract to receive it. A basket is an accounting record of what the protocol would have bought.

Hatching is triggered by sign-in, not by a buy. In production a fly is tokenized by an indexer watching $FLYS buys on the Pons pool — which is why the hatch path takes an address rather than a session and offers no artwork to choose. Here the sign-in flow stands in for that indexer so the loop can run end to end today.

//Legal position

Read this part twice

Airdropped stock balances are promotional rewards. They are not dividends, distributions, yield or investment income, and holding a fly entitles you to none of those.

A fly conveys no equity and no ownership in flys or in any company whose ticker appears on this site, and carries no shareholder rights of any kind: no company votes, no claim on assets or earnings, no legal or beneficial interest in any security. The only vote a fly has is over which symbol the next sweep leans towards.

Nothing here is financial, investment, tax or legal advice, and nothing here is an offer, solicitation or recommendation to buy or sell any security or token.

flys is independent and not affiliated with, sponsored by or endorsed by Robinhood, Pons, Uniswap, or any company listed in the Pons family. Ticker symbols and company names identify the assets the protocol references and nothing more.