5,000 faces assembled from punctuation. Every whole KAO you hold is one Kaomoji — minted on purchase, tradable on OpenSea or Uniswap, and earning a share of every trading fee the pool collects. The art lives entirely on-chain.
Each face is drawn at 128 × 128 and stored in the contract itself — no image server, no IPFS pin, nothing that can go offline. The trait names come from the artwork files and are written on-chain alongside the pixels.
Kaomoji plugs a hook into its Uniswap pool — a small contract the pool calls immediately after every swap. Each swap stirs its own details into a rolling number held by that hook: the amounts traded, who traded them, and how many swaps have happened. Every trade moves it; nobody sets it.
When a purchase pushes you past a whole token, the contract takes that number, mixes in your address and the id of the token being created, and hashes the result into a seed. The seed is a single value stored forever against your Kaomoji.
Four independent slices of that seed pick one background, one head, one pair of eyes and one mouth. The layers stack in the order below and become your face — permanently. Nothing is stored but the seed; the picture is rebuilt from it every time anyone looks.
Buy a whole KAO and a Kaomoji mints to your wallet in the same transaction. Buy 3.4 and you get 3 faces, with 0.4 left over as a fraction.
Sell back below a whole number and your newest face burns — its seed is destroyed for good. Buying again rolls a fresh one; the old face never returns.
Trade the fungible side on Uniswap, or list an individual face on OpenSea. Selling a Kaomoji moves exactly 1.0 KAO along with it, and the buyer receives the identical face — the seed travels with the token.
Every whole KAO is one share of the pool's trading fees. Hold 3 faces out of 300 in circulation and you receive 1% of every fee collected from that point on, in both ETH and KAO.
Fees are pushed to the distributor by anyone calling collectAndDistribute(). Claim yours whenever you like.
Swap ETH for KAO on Uniswap. Every whole token you end up holding mints a face automatically — there's no separate mint step.
Your Kaomoji appear on OpenSea straight away, rendered from the contract. Wallets show the KAO balance; marketplaces show the faces.
Call claim() on the distributor to collect your accrued share of trading fees. It pays out in ETH and KAO.
Deployed on Robinhood Chain (chain id 4663). Check any address against the chain's explorer before you interact with it.
| contract | address | what it does |
|---|---|---|
| Kaomoji | 0x8faa9f1ad984a96ae5195419bfa9402c071e8516 | Token + faces |
| Art Storage | 0x3cd670945e53dc0f925fb71534c91555330644ce | All 664 layers, on-chain |
| Renderer | 0xf6f5f3ffec93b5902ce539eaeb84d1891c0300b4 | Builds the image + traits |
| Fee Distributor | 0x926358c69f0856a4ae96df6f5b1e03e473cd8684 | Holds and pays out fees |
| Fee Collector | 0x6134f1902519bb3d2680969ad9357353bdbd243c | Harvests fees from the pool |
| Swap Hook | 0xe59fa038af699912047e01c14de5bbf871918040 | Feeds randomness to mints |
Dropping below a whole token destroys your newest Kaomoji and its seed. If you want to keep a specific face, keep its whole token — or move the face itself, which carries its token with it.
Because one contract is both a token and a collection, some block explorers print the raw balance without a decimal point. Your wallet, Uniswap and OpenSea all show the correct numbers.
You earn from fees collected after you hold, not before. Share counts update the moment your balance changes, in the same transaction.
Unaudited — use at your own risk. These contracts have not been reviewed by a third-party auditor. Read them yourself before you buy, understand that anything on-chain can fail or be exploited, and never spend more than you are willing to lose entirely.