THE COLONY IS NOT MINTED.
IT IS WRITTEN.
At launch the ice is empty. No penguin exists at t = 0. Every swap in
the pool adds one, and the picture fills in transaction by transaction — a living
record of the liquidity that passed through.
ONE SWAP, ONE PENGUIN
The hook runs on the pool's own swap path. It does not gate trading, it does not change what a swap costs, and it cannot be routed around — if a swap happens, a penguin is born. There is no mint button anywhere, and no way to buy your way to a specific one.
The colony therefore grows at exactly the rate the market trades. A quiet week leaves the ice sparse. A frantic one fills it. The image is the volume chart, drawn as a crowd.
THE MARKET DECIDES THE SPECIES
Each birth draws from a weighted ladder of eight species. What shifts the odds is the market state the pool observes through Chainlink — volatility read at the moment of the swap, classified into CALM WINDY VOLATILE.
A calm tape narrows the window: births cluster at the common end. A volatile one opens the tail, and the deep rarities — Verdant, Azure, the luminous Albino — become reachable. You cannot choose your penguin. You can only choose when you trade, which is a much more interesting decision.
WHAT THAT MAKES
Read the colony a year from now and you are reading the market's history. Clusters of rare species mark the days the tape came apart. Long stretches of Adélies mark the weeks nothing happened. The environment behind them shifts with the same signal, so even the sky is a record.
It is a chart that anyone can look at without knowing what a chart is.
WHAT IS STILL OPEN
This is a v0.1 concept document turned into an interface, not a finished protocol. Three things are genuinely undecided and will change:
- Whether a birth is an ERC-721 held by the swapper, or a purely on-chain entry in the colony with no separate token.
- The exact volatility bands, and which Chainlink feed defines them.
- How the pool and the project are funded — there is no fee model published here yet, and inventing one for a mock-up would be dishonest.
ADDRESSES
The app talks to the protocol through one small interface. The contracts are not written yet; these are the sockets they must plug into, and the app already speaks to them over plain JSON-RPC.
interface IColony {
function totalBirths() external view returns (uint256);
function colonyState() external view returns (uint8 state, uint16 volBps);
function birthOf(uint256 id) external view returns (
uint8 species, // index into the ladder, 0..7
uint8 state, // 0 CALM · 1 WINDY · 2 VOLATILE
uint16 volBps, // volatility at the swap, in basis points
uint64 bornAt, // block timestamp
address parent // the swapper
);
event Born(uint256 indexed id, uint8 species, uint8 state,
uint16 volBps, address indexed parent);
}
Nothing on this site is an offer, and no token exists. Weights shown are the current proposal, not a commitment.