Overview
FROND is a demo of one network of lots, drawn as one plant in black and white: a flower on top, a stem, branches, leaves and roots. There are 512 sprouts. A sprout is a lot: a numbered point of the plant, #001 to #512. Planting one costs 120 $FROND (demo) and a bud curls up at the point you chose.
The name is the picture. A frond is a leaf that uncurls from a tight coil, so the page borrows the shape: a coil, a branch, a pinna. The plant is drawn flower first, then stem, branches and roots. The more sprouts are planted, the fuller and larger it is drawn.
At a glance
| Supply | 512 sprouts, #001 to #512 |
| Price | 120 $FROND per sprout Demo |
| Limit | 5 sprouts per wallet |
| Phases | before, growing, bloom |
| Spores | 30 $SPORE (demo) per sprout, collected once, in bloom |
| Badges | 10 soulbound demo badges that add Frost points |
| Relic | One generated flower per wallet, claimed once |
What this page is not
It is not a live launch. There is no contract, no token and no payout. The wallet connection is simulated, nothing is signed, and the page never asks for a seed phrase or a private key. Everything runs in your browser and the state lives in this tab.
| Status | Draft / to be confirmed |
| Chain | Not chosen. To be confirmed. |
| Contract | None exists. No address is claimed. |
| Audit | None. No audit is claimed. |
| Launch | No date. To be confirmed. |
How it works
Network
The plant has 54 axes: one stem, 26 branches that leave it at uneven heights, each from its own node and mostly on alternating sides, and 27 shoots that fork from the branches. A point of the plant is one position on one axis, written as a pair {j, f}: the axis number and how far along it, from 0 to 1. On the stem, f runs from the ground up to the flower.
Sprout
A sprout is a lot, the unit you can hold. In the demo, the sprouts #001 to #214 are drawn as already planted by others while the state is growing, so your first sprout is #215. That count is a rule of the mock, not data about real people.
Node, depth, curl
The node is the sprout seen from the network: its number, its owner, its point. Depth and curl are two labels worked out from the number alone, so the same sprout always shows the same ones. Depth is a whole number from 3 to 6. Curl is a side (L or R) and a turn (0.5, 1, 1.5 or 2). In this demo they are labels only. No extra use is promised for them.
How planting changes the scene
- On the Plant page, tap or click the plant. The nearest branch is chosen, a dashed ring marks the point and the view moves in on it. With no choice, a point is assigned from the sprout number.
- When the plant goes through, a pulse of sap runs from the roots up the stem and along the branch to your point, and a bud curls up there.
- Your sprouts get a ring and a label: number, depth, curl. Other sold sprouts are drawn as small buds at points taken from their numbers.
- The more sprouts are planted, the more leaflets each branch tip carries and the larger the plant is drawn.
Life of a node
| Step | What happens |
| 1. Free | The number exists but has no owner. Not drawn as yours. |
| 2. Planted | A wallet pays 120 $FROND (demo). The node gets its owner, depth, curl and point. |
| 3. Bloom | All 512 are planted. Every bud opens into a small flower, the plant lets go of spores and planting closes. |
| 4. Collected | The owner collects 30 $SPORE (demo) for it, once per wallet. |
Selling or moving a sprout to another wallet is not part of the demo. Rules for it are to be confirmed Draft.
Cutting
A click or tap on a branch cuts it. It drops away and grows back from its node in a few seconds. It is a toy: cutting changes nothing in the ledger. It does earn one badge.
Phases
The page has three phases. The Demo state buttons in the header switch them by hand, so you can see every state without waiting.
| Action | before | growing | bloom |
| Connect wallet | open | open | open |
| Faucet | open | open | open |
| Plant a sprout | closed | open | closed (sold out) |
| Collect spores | closed | closed | open |
| Badges, Relic | open | open | open |
before
The rhizome is sealed. Nothing is planted. You can connect a wallet and take demo tokens.
growing
Planting is open: 120 $FROND each, up to 5 per wallet, 512 in all. The plant grows with the count.
bloom
All 512 are planted, every bud opens, and each holder can collect spores once. Planting is closed.
In a real launch the phases would follow the supply. Here they follow your hand. Phases driven by a backend are Planned. What happens if the 512 never fill is not defined Draft.
Tokens
There are two demo tokens. Neither exists outside this page. Neither has a price or a market.
| Token | Role | Rules in the demo |
| $FROND (demo) | Pays for sprouts | Faucet gives 1000, once per wallet. A sprout costs 120. Limit 5 per wallet, so the most one wallet can spend is 600. |
| $SPORE (demo) | Collected in bloom | 30 per sprout you hold. One collection per wallet. Only in the bloom phase. |
Faucet
The faucet hands out 1000 $FROND (demo) to the connected wallet. A second try is refused with the code FAUCET_USED. One faucet covers all five sprouts with 400 left over.
Limits
- 120 $FROND per sprout.
- 5 sprouts per wallet.
- 512 sprouts in total.
- 30 $SPORE per sprout, once.
Any real token, its name, its standard and its supply are to be confirmed Draft.
Achievements & Relic
Badges
A badge is a mark you earn by doing something on the page. Badges are soulbound: they stay with the wallet, cannot be moved, and have no money value. Each one adds Frost points. The Achievements page shows each condition, your progress and the points.
| Badge | Condition |
| Connected | Connect a wallet. |
| First Breath | Take the faucet. |
| Seedling | Hold 1 sprout. |
| Gardener | Hold 3 sprouts. |
| Full Hand | Hold 5 sprouts, the limit. |
| Pathfinder | Plant at a point you chose. |
| Cutter | Cut a branch with the scissors or a tap. |
| Reader | Read these docs to the end of Risks. |
| Witness | Be in bloom holding a sprout. |
| Collector | Collect your spores. |
Relic
A Relic is a generated flower. It is made from a hash of your address, your sprout numbers and your set of badges, so the same inputs always give the same flower. It has an id like R-XXXX, a rarity (Common, Uncommon, Rare or Frost, by Frost points) and traits: petals, density, symmetry. Petals set the number of petals, density the layers and hatching, symmetry whether the flower is a mirror or turns by the golden angle.
- Conditions (demo): hold at least 1 sprout and have at least 3 badges.
- One Relic per wallet. The claim works once; a second try is refused.
- Before the claim you see a preview, marked as one: the final form is fixed when you claim.
- After the claim you get the final card. It does not change any more.
- It is separate from $SPORE. It is not a token and has no amount.
What a Relic could unlock later (access, perks) is Planned and to be confirmed. In the demo it unlocks nothing.
Technical notes
Architecture
- Client. One HTML file: the canvas scene, the panels and this manual. No libraries.
- Mock layer.
window.FrondAPI lives in its own script block. The page only talks to it, never to a network.
- State. Kept in
sessionStorage of this tab, so it survives a reload and disappears when the tab closes.
- Swap. To go live, the mock is replaced by a layer with the same methods that talks to a real backend. The page code does not change. Planned
Methods
| Method | Returns | Status |
| getState() | Snapshot: phase, sold, balances, your sprouts, claimable. | Demo implemented in mock |
| connectWallet(id), disconnect() | Address and wallet id. | Demo implemented in mock |
| faucet() | Amount and balance. | Demo implemented in mock |
| plant(n, spot) | Sprouts with number, depth, curl, point; balance; sold. | Demo implemented in mock |
| claim() | Amount of spores and balance. | Demo implemented in mock |
| setPhase(p) | New snapshot. Demo switch only. | Demo implemented in mock |
| previewPlant(n, spot) | What a planting would give, and the reason if it is blocked. | Demo implemented in mock |
| getReceipt(id) | The receipt of a planting or a claim. | Demo implemented in mock |
| getAchievements() | Badges, progress, Frost points. | Demo implemented in mock |
| getRelicPreview(), claimRelic() | Preview card; the final card after the claim. | Demo implemented in mock |
| track(kind) | The page reports events the mock cannot see: cut, read. | Demo implemented in mock |
Every method answers after a short delay (about 200 to 600 ms) and a failure is an object with code and message. Demo here means implemented in this mock and covered by its test file; a real backend is Planned for every method. The exact shapes are written out in API.md next to this file. They describe the mock, and a real backend may differ.
Error codes
| Code | When |
| NOT_CONNECTED | The action needs a connected wallet. |
| BAD_ARG | A wrong argument, for example an unknown phase or n below 1. |
| PHASE | The action is closed in the current phase. |
| SOLD_OUT | All 512 are planted, or not enough are left. |
| LIMIT | More than 5 sprouts for one wallet. |
| FUNDS | Not enough $FROND. |
| FAUCET_USED | The faucet was already used by this wallet. |
| ALREADY_CLAIMED | Spores (or the Relic) were already collected. |
| NOTHING_TO_CLAIM | No sprouts held. |
| NOT_ELIGIBLE, NOT_FOUND, BUSY | Relic conditions not met; no such receipt; the previous call is still running. |
Events
change, phase, connect, disconnect, faucet, plant, claim, achievement and relic, all implemented in the mock. The page listens to them to show the toasts.
From mock to real backend
| Part | Mock now | Real |
| Wallet | Simulated list, no signature | Real wallet connection Planned |
| Balances | Numbers in the tab | Read from the real source Planned |
| Planting | Instant, local | A signed action, confirmed by the backend Planned |
| Spores | Local counter | A claim recorded outside the browser Planned |
| Badges | Worked out in the tab | Worked out from recorded events Planned |
| Relic | Hash computed in the tab | Fixed and recorded at claim Planned |
| Phases | A manual switch | Follow the supply Planned |
Integration steps
| Step | Status |
| 1. Mock layer with the full method list | Demo working in this page |
| 2. Contract of the API written down, with tests | Demo API.md and a test file exist for the mock; frozen for a real backend Planned |
| 3. Test backend behind the same methods | Planned |
| 4. Real wallet connection; chain to be confirmed | Planned |
| 5. Security review by someone independent | Planned, none done so far |
| 6. Launch | No date. To be confirmed. |
Risks
Read this before you touch anything. The label is the same one from the notes, written out in full.
Herbarium label / plain terms / full
| Demo | This page is a demo. Every token, price, address and number on it is simulated in your browser. |
| Return | A sprout does not promise any return. Its value can be anything, including none. |
| Tokens | $FROND and $SPORE are demo tokens. No money moves. |
| Market | A token may have no market at all. Nobody is obliged to buy a sprout later, and selling or moving one is not defined. |
| Spores | What spores could ever be worth, if anything, is unknown. Nothing is promised. |
| Badges | Badges and Relic are soulbound demo marks. They are not tokens, cannot be sold and have no money value. |
| Rules | Supply is fixed at 512 and the rules are set in advance. Demo numbers and rules may change before any launch. |
| Wallet | The wallet connection is simulated. This page never asks for a seed phrase or a private key. Never type one anywhere. |
| Draft | Parts marked Draft or Planned do not exist yet and may never exist in this form. |
| Claims | No audit, contract address, partner or team is claimed here. |
Not financial advice. Take part only with what you could do without.
End of the label. This is where the Reader badge is checked.
FAQ
Is this live?
No. It is a demo. There is no contract, no real token and no payout. Everything is simulated in your browser.
Do I need a real wallet?
No. The list of wallets is a mock, and choosing one only sets a label in this tab. Nothing is signed and nothing is sent. Never type a seed phrase or a private key into this page or any page like it.
What does a sprout give me?
A numbered node with a depth, a curl and a point on the plant, shown with a ring. In bloom it lets you collect 30 $SPORE (demo). It also moves your badges and the Relic forward. It promises no return.
Can I sell or move a sprout?
Not in the demo. Whether that will exist, and how, is to be confirmed (Draft).
What if the 512 never fill?
In the demo you switch to bloom by hand. What would happen in a real launch is not defined (Draft).
Why only 5 per wallet?
It is a rule of the mock, fixed in advance: 5 sprouts per wallet, 512 in total.
Which chain and which token standard?
Not chosen. This page does not claim any. To be confirmed.
Is it audited?
No audit is claimed, and none exists for this demo.
What is the difference between a Relic and $SPORE?
$SPORE is a demo token you collect in bloom, an amount per sprout. A Relic is one generated flower per wallet with an id, a rarity and traits. It has no amount and it is not a token.
Where is my progress kept?
In the session storage of this tab. A reload keeps it. Closing the tab or clearing site data removes it.
Glossary
- Sprout
- A lot. One of 512, numbered #001 to #512.
- Node
- A sprout seen from the network: number, owner, point.
- Depth
- A label from 3 to 6, worked out from the sprout number.
- Curl
- A label of side and turn, such as R1.5, worked out from the number.
- Rhizome
- The underground network the whole page pretends to be the ledger of.
- Axis
- The stem, a branch or a shoot of the plant. A point is an axis and a distance along it.
- Bloom
- The phase when all 512 are planted and spores open.
- Spores
- The demo token $SPORE, collected once per wallet in bloom.
- Faucet
- A button that gives demo $FROND, once per wallet.
- Frost
- Frost points: the points that badges add up to. A score, not a token.
- Badge
- A soulbound demo mark for something you did on the page.
- Soulbound
- Tied to the wallet and not movable.
- Relic
- One generated flower per wallet, claimed once.
- Cut
- A snipped branch falls and grows back from its node.