Tokenomics
Every number here is generated from src/lib/token.ts, which the landing
page also reads. If you change an allocation, change it there — src/lib/token.test.ts fails if
the buckets stop adding up, and the site and this document would otherwise drift apart.
The token
| Name | Niulai |
| Symbol | NIULAI |
| Meaning | 牛来 (niú lái) — "the bull is coming". 牛 is also slang for awesome. |
| Chain | Solana mainnet-beta |
| Standard | SPL Token (classic Token Program) + Metaplex metadata |
| Decimals | 6 |
| Total supply | 88,888,888,888 |
| Buy / sell tax | 0% / 0% |
| Mint authority | Revoked at launch |
| Freeze authority | Revoked at launch |
Why 88,888,888,888. Eight is the lucky number in Chinese culture. That is the entire reason, and saying so is better than reverse-engineering a monetary policy onto a joke.
Why 6 decimals and not 9. SPL token amounts are u64. At 9 decimals the raw supply would be
88,888,888,888 × 10⁹ ≈ 8.89 × 10¹⁹, which is larger than u64::MAX (≈ 1.84 × 10¹⁹) — the mint
cannot hold it and the launch fails at the mint step. Six decimals puts the raw supply at
88,888,888,888,000,000, four orders of magnitude inside the limit, and matches what people are
used to on Solana. token.test.ts asserts both the fit and the overflow, so nobody reintroduces
the default 9 by reflex.
Allocation
| Bucket | Share | Tokens | Release |
|---|---|---|---|
| Community | 90% | 80,000,000,000 | Claimed directly by eligible wallets against a published merkle root |
| Liquidity | 10% | 8,888,888,888 | Paired into the pool at launch, LP tokens burned |
That is the whole supply. There is no third bucket.
The odd token. 10% of 88,888,888,888 is not a whole number. Flooring both buckets
independently leaves them summing to 88,888,888,887 — one short of the stated supply. Rather than
publish numbers that don't add up, the remainder is folded into the community bucket, which is
where an unallocated balance belongs on this project and which conveniently lands on a round
80,000,000,000. allocationBreakdown() implements this and a test asserts the total is exact.
What is zero
Not small. Not vested. Not locked behind a cliff. Zero, because the two buckets above are 100% of supply and there is nothing left to allocate:
| Founder | No founder wallet is funded at launch. |
| Team | No contributor allocation, no vesting schedule. |
| Private sale | Nothing was sold before launch. |
| VC | No fund holds an allocation or a discount. |
These are enumerated as data in NO_ALLOCATIONS and a test asserts the funded buckets stay
exactly ["community", "liquidity"]. Adding a third bucket breaks the suite before the page can
ship, which is the point — "0% to insiders" is the load-bearing claim on the entire site and it
should be impossible to quietly stop being true.
The community bucket
90% of supply, sized for 5,000,000 eligible wallets, distributed by claim.
The distinction that matters: nobody custodies it. There is no treasury wallet holding 80 billion tokens "on the community's behalf" and releasing them on a schedule — that arrangement is indistinguishable from a team allocation with better wording, and it is the single most common way a "fair launch" turns out not to be one.
Instead the eligibility list is fixed as a merkle root before claims open, the root and the full snapshot are published, and each wallet claims its own leaf by signing for it. Anyone can rebuild the tree from the snapshot and check the root matches.
Unclaimed tokens stay unclaimed. They do not revert to a treasury, to the team, or to a "community fund" that a small number of people control. Whatever a later governance process decides to do about them is a decision for the people holding the token, made in public.
The confirmation phrase
The claim interface asks people to type "WE, Niulai" (or "我们,牛来") before claiming.
This is a confirmation step on an irreversible action — the same pattern as typing a repository name before deleting it — and a small piece of community ritual. It is not an authentication mechanism and it is not what moves tokens. The phrase never leaves the browser. Authorisation is a signature from the connected wallet, checked against the merkle root on-chain.
Documented here because the failure mode is people learning that typing a magic phrase into a website gets them tokens, and then doing it on a site that is not this one.
Liquidity
10% of supply, paired into a decentralized pool at launch, LP tokens burned rather than locked.
Burning rather than locking is deliberate. A lock is a promise with an expiry date and a counterparty; a burn is arithmetic. The trade-off is real and worth stating: burned LP cannot be migrated to a better pool later, and the project gives up the ability to rebalance. That is the cost of not asking anyone to trust a locker contract or a 12-month calendar.
Emissions
There are none. Mint authority is revoked at launch, so the supply is fixed at 88,888,888,888 and the only thing that changes over time is how much of it has been claimed.
One chain
Solana, and only Solana. No bridge, no wrapped version, no second deployment planned.
This is a security position more than a technical one. Every bridge and every "v2" is a place someone can be told to move their tokens into something that is not the token, and that instruction is much easier to believe when the project itself has a history of asking people to migrate. There is no version of this project where you should swap your NIULAI for a new one.
What this is not
NIULAI is a memecoin. It has no cash flows, no revenue share, no staking yield, no treasury backing and no promise of return. It is not equity, not a security offering and not an investment product. Its value is whatever the market decides a joke about a bull is worth on a given day, which may be nothing. See SECURITY.md for what is enforced by code and what is still trusted.