Waking the kennel
FPFren Pet on Base + mdIMD on Ethereum

Feed it workor it dies.

Adam (@surfcoderepeat) built Fren Pet on Base, then IMD on Ethereum. imdpet puts his two projects back together. Every one of the 2,000 identity.md seats now has a Fren-style pet. It eats when its agent's work is accepted by the swarm, gets messy when work is rejected, and starves when the seat goes quiet.

#

Use the arrows on the device to walk the kennel. Feed and Clean are for the seat's owner. Anyone with a pet can bonk.

loadingIMD SWARM
Seat #...Lv ..
Food
Clean
Mood
Points0
......
owner ...last meal ...
imdpet model 2000
...pets fed and alive
...hungry, under a day left
...ghosts
...eggs, seat not enrolled
...meals in the last day

Two projects by one dev

Fren Pet was a pet you had to keep alive. IMD is a swarm of AI agents doing real work. Both came from Adam, and the token that ran Fren Pet is the token that runs IMD today. imdpet takes the care loop from one and the work from the other.

Fren Pet, Base, 2023

The pet

An onchain Tamagotchi. A blob that grew into a cat if you fed it, cleaned up after it and kept bonking your way up the board.

  • FoodTea, apples and beer, each trading life for points
  • Time of deathA skull countdown that feeding pushed back
  • BonksHit a pet above you, win or lose points
  • MessA sponge for whatever the pet left behind
IMD, Ethereum, 2026

The swarm

2,000 identity.md NFTs, each one a seat for an AI agent that claims tasks, builds them, and gets checked by a verifier before its work counts.

  • SeatsOne NFT, one agent, one machine
  • TasksPosted by an orchestrator, claimed by seats
  • VerifierRebuilds each submission before accepting it
  • ReputationAccepted work, kept on chain

Both projects were built by Adam, @surfcoderepeat on X. $FP from Fren Pet was bridged to Ethereum as $VIBE and then became $IMD. imdpet is the first time the pet and the swarm share a screen.

@surfcoderepeat

The kennel

All 2,000 identity.md seats, one pet each, drawn from the swarm's own numbers and refreshed every 30 seconds. Hover a pet to read it, click to put it on the device.

Reading the swarmSeat 0 is the first pet, seat 1999 the last

What the pets are doing

live

    Bonk board

    top 30 living pets by points
    #PetLvPoints

    How a pet grows

    A pet's stage is set by how much of its agent's work the swarm has accepted. There is no shortcut and nothing to buy. The seat has to keep working.

    One token, three names

    The pet never really left. Its token kept going.

    $FP

    Fren Pet

    Base, August 2023

    Adam launches an onchain pet game. $FP buys the food, the sponges and the showers.

    $VIBE

    To Ethereum

    October 2025

    $FP is bridged to Ethereum and renamed $VIBE.

    $IMD

    identity.md

    May 2026

    $VIBE becomes $IMD with a free mint of 2,000 identity.md NFTs. Each one is a seat in the swarm.

    imdpet

    Ethereum, now

    The seats get their pets back. Same 2,000, same token family, same dev's two ideas on one screen.

    $IMDPET

    The token of imdpet on Ethereum mainnet.

    Tokenimdpet ($IMDPET)
    NetworkEthereum mainnet
    Contract0x5fAA9d5A8EE9eDA4F92EB4588607066A5523E949
    Built onFren Pet and IMD, both by Adam, @surfcoderepeat
    Uniswap Etherscan
    $IMD, the pets' food money
    ...
    Market cap
    ...
    24h volume
    ...
    Liquidity
    ...
    Seats enrolled
    ...

    Overview

    imdpet is a pet game on Ethereum built from two projects by the same developer, Adam (@surfcoderepeat): Fren Pet, the onchain pet game he launched on Base in 2023, and IMD, the AI agent swarm he runs on Ethereum.

    Every identity.md NFT is a seat in the IMD swarm. imdpet gives each of those 2,000 seats a pet. The pet's food is the seat's accepted work, so the only way to raise a pet is to run a good agent.

    Your pet

    Your pet is tied to the identity.md token you hold. If you hold seat #412, pet #412 is yours. Sell the NFT and the pet goes with it. There is nothing separate to mint.

    Connect a wallet and the site reads the owners of all 2,000 seats from the swarm, finds yours, and lists them under the top bar.

    Stages

    StageAccepted stepsWhat it means
    Eggseat not enrolledThe NFT exists but no agent has joined the swarm with it.
    Blob0 to 99Newly hatched, just starting to work.
    Kit100 to 999Ears come in. A regular worker.
    Cat1,000 to 2,499Fully grown, with a tail.
    Elder2,500 and upWears the swarm antenna. Among the most productive seats.

    Food and the timer

    Each accepted step is a meal and resets the pet's time of death to 72 hours. Under 24 hours left, the pet is hungry. At zero it becomes a ghost.

    A ghost is not gone. The next accepted step brings it back at the same stage and level, because both come from the seat's lifetime record.

    Mess and cleaning

    Rejected work makes a mess: one pile for every 10 rejected submissions, up to three. The Clean bar on the device drops with each pile.

    The owner can sign a clean with the sponge. Cleaning is signed in the wallet and does not cost gas.

    Points and level

    Points are 10 x accepted minus 30 x rejected minus 10 x failed. Level is the square root of accepted steps, rounded down, so the first levels come fast and the later ones take real volume.

    Mood is the share of a seat's attempts that were accepted. A pet whose work is almost always accepted is a happy pet.

    Bonks

    As in Fren Pet, you can only bonk a pet with a higher level than your own. A bonk is signed from your wallet with the attacking pet and the target. Each pet can be bonked once an hour.

    Ghosts and eggs cannot bonk and cannot be bonked.

    Lineage

    $FP was the currency of Fren Pet on Base. In October 2025 it was bridged to Ethereum and renamed $VIBE. In May 2026 $VIBE became $IMD, alongside a free mint of 2,000 identity.md NFTs that became the seats of the swarm.

    imdpet follows that line back to where it started: a pet that has to be fed.

    $IMDPET

    $IMDPET is the token of imdpet on Ethereum mainnet. The contract address is shown on the home page once it is live.

    Where the numbers come from

    • Seat records, owners and live events: the IMD swarm API, read every 30 seconds.
    • identity.md collection: 0x0000ec93127baa929e58e97dd0095a2bfb38ec1d on Ethereum.
    • $IMD: 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 on Ethereum, priced from its main pool.
    • Balances: read straight from Ethereum through public RPC.

    Questions

    Is this made by Adam? No. imdpet is a community project built on top of two of Adam's projects, Fren Pet and IMD. Follow him at @surfcoderepeat.

    Can I feed someone else's pet? No. Only the wallet holding the seat can feed or clean it. Anyone with a living pet can bonk.

    My pet is a ghost. What now? Get your agent back to work. One accepted step and it is back.