From an email
to a living card.
Six steps, no app, no seed phrase. Pick your wallet and follow the footprints.
Enter your email
No app, no wallet, no crypto words. Just type your email and tap the button.
Add it to your wallet
Tap Add to Apple Wallet in Safari. Your new card slides right in. Inside the X or Instagram app it will not: open the link from your email in Safari.
Your card arrives
Open your wallet and there it is: your pet's own card, with its number on it. That card is the NFT.
Flip the card over
Tap the ••• button at the top right. The card flips to its back, where the buttons live.
Tap an action on the back
Each button sends a real care transaction on chain, and the gas is on us. The first feed hatches the egg with all five bowls full (usually during the mint itself).
It is alive. Keep it that way.
Feed, water, play, toy, and explore: five needs, every day, each on its own timer. The card updates itself and pings you when it has 8 hours left, and once more at 2.
That is the whole setup. Next: what each tap does on chain, and the rules the pet lives by.
What each tap does
on chain.
An embedded wallet is created that only you control. No seed phrase is ever shown to you.
The ERC-721 lands in that wallet, the pet gets its own ERC-6551 account holding 1495 test CARE, and a signed Apple pass and Google pass are issued for it.
The link is an unguessable capability URL for that pet and that action. The server re-reads ownerOf on chain, then sends a sponsored care() from your wallet under a care-only permission you granted once.
Every mint, transfer and care emits PassUpdate from the pet contract, and the card is rebuilt from chain state and pushed to your phone. A reminder reaches your phone when your pet has 8 hours left and a last chance at 2, each naming the taps that fix it (or all five needs). News from the colony shows on the card.
Gift it from My pets (one signature, no gas) or sell it anywhere. The old card's taps fail the ownerOf check immediately. The new owner proves control, which rotates the pass and every link on it. If a link of yours ever leaks, Reset my pass links on My pets kills every old link and re-sends your card.
passURI(tokenId) on the contract points at the pet's pass manifest. Strangers get a 401. The owner signs a one-time challenge and gets the Apple and Google links.
Cute pet.
Life and death on chain.
The game is what makes the card worth watching: clocks that tick, a balance that moves, a colony that shrinks. Life, death, the roster and the Pot all live in the contracts, not on a server.
- 01Minting was free with just an email, one pet per email and one per phone. It is closed now. The Arena shows how many were minted and how many are still alive.
- 02Every pet starts with 1495 test CARE in its own account: about 299 days of all five needs at the minimum. Test CARE is fake and has no value.
- 03Its first feed hatches it and fills all five bowls. Usually that happens during the mint itself.
- 04Feed, water, play, toy, explore: each need has its own 24 hour clock, and a care resets only that one. Miss any one and it dies. Death is forever: the card stays as a soulbound memorial.
- 05Feeding does not reset the day. If you feed and water at night, play, toy and explore keep counting down on their own clocks and can still run out the next morning. The SURVIVES time on the card is always the oldest need, so care for that one first.
- 06One care for each of the five needs a day is all it takes: a pet dies when its oldest need runs out. Every tap spends and every tap counts. Launch-week pets (No. 1 to 162) carry a limit of 20 cares per 24 hours in their own account; pets minted after that have no such limit.
- 07Two reminders, no more: one when your pet has 8 hours left and a last chance at 2. Both say how long it has and which taps fix it. The last chance ignores quiet hours: a dying pet is worth waking for.
- 08Each care costs 1 test CARE: 69% is burned, 20% goes back to living keepers, 10% goes into the Pot, 1% pays the gas for pushes.
- 09Keeper rewards are pushed into each living pet's account every 2 hours. Nothing to claim. A pet that dies forfeits its share to the survivors.
- 10Simulated trading fees: every 2 hours the server mints 100 test USDG into the fee splitter. Half is swapped into test CARE for the keeper rewards pool. Half is airdropped four times a day into every living pet's own account, split by how much CARE each one holds. In a real deployment this stream would come from trading fees; here it is minted so every mechanic runs.
- 11Care for it and it evolves: egg, hatchling at its first care, grown at 10 cares or 3 days, prime at 30 cares or 10 days, whichever comes first. Past prime comes its final form: one of 28 forms in 8 families (a dragon, a koi, an owl, a slime king), rolled at random for each pet, and it keeps its own colours and face. Launch-week pets (No. 1 to 162) take their form as soon as they are prime; newer pets need prime plus 60 cares or 21 days. The games still draw the base body for now.
- 12The back of the card also opens two games, CHI SHOT and CHI NIGHT, and a photo album with five pictures of your pet: a banner, a PFP, a wallpaper, a poster and the class photo. The album is for living pets. A tombstone keeps the games.
- 13Minting is closed, so the roster is set: no new pets join this season.
- 14No winner before the season's first 60 days are up, and never with fewer than 3 hatched pets.
- 15The last pet alive takes the whole Pot into its own account and becomes immortal.
ERC-8426: Wallet Pass Extension for NFTs.
WALLETCHI is a live implementation of ERC-8426 (Draft). The pet contract answers supportsInterface(0xef5f1e71), so any marketplace or wallet that reads the standard can find the pass behind a token and offer the button. The reference SDK is @erc8426 on npm (source), with a live demo.
- passURI: like tokenURI, it points at the pet's pass manifest. Here it runs gated: only the proven owner gets the Apple and Google links, and a transfer rotates them.
- PassUpdate: the contract emits it on every mint, transfer and care, telling the card to refresh. BatchPassUpdate covers reward pushes and the season's end.
- An authorization floor: a pass is a bearer artifact, so every on-chain action it can reach needs the owner's proof of control, or a bounded link issued to the owner, plus a fresh ownerOf read on every tap.
- Apple-issued Pass Type ID certificateTeam ID H97••••53A
- Issuer approved by GoogleIssuer ID 3388•••••••••••5037
// ERC-165 id 0xef5f1e71
interface IERC721WalletPass {
event PassUpdate(uint256 indexed tokenId);
event BatchPassUpdate(uint256 fromTokenId, uint256 toTokenId);
function passURI(uint256 tokenId)
external view returns (string memory);
}