Dog Officers
Thirty-two pixels square, flat colour, one ink outline — and every pixel is drawn on-chain by the contract. No IPFS, no server, no reveal. Ten trait slots, 5,555 commissions on the roll.
On the roll
Twelve of the five thousand
Coat, ears, markings, eyes, brows, uniform, cap, rank and one indulgence apiece — ten trait slots rolled once at generation and frozen into the metadata. Caps run from the standard peaked cap down to a single-figure count of admiral's bicornes.
What the regiment is wearing
True distributions across all 5,555 tokens, counted after generation — not targets, and not rounded in anyone's favour.
Three steps, no allowlist
Come aboard
Connect any EVM wallet. The site adds and switches the network for you — Robinhood Chain, ID 4663, gas paid in ETH.
The first is free
Every wallet's first token costs nothing while the 3,000 free pool holds. Take more in the same transaction and each extra is 0.0001 ETH — the contract quotes the exact figure, so a free mint sends 0 ETH.
There is no reveal
Your officer exists the moment the token does — the renderer draws it from the id. No pinning, no placeholder box, nothing for the team to switch on later. Once the 3,000 free commissions are gone every mint is paid, first token included.
Straight answers
How does the free mint work?
Your wallet's first token is free — it sends 0 ETH. Any additional token in the same
transaction costs 0.0001 ETH. The free allocation is capped at FREE_CAP = 3,000
across the whole collection; once it runs out every mint is paid, first token included. One
free token per wallet, ever — a second transaction from the same address pays.
Is 5,555 really the supply?
Yes. HARD_CAP is a constant in the contract. The owner can shrink the drop, but
no function — owner-only or otherwise — can mint past 5,555.
What can the owner do?
Open and pause the sale, change the price, change the per-transaction cap, shrink the supply, mint team tokens inside the cap, set the metadata URI, and withdraw proceeds. That is the entire list, and it is all in the source.
What if I send the wrong amount?
The mint reverts. Payment is exact — there are no refunds — so a free mint carries
0 ETH and no tracker can misread it as a paid one. This page always sends exactly what
quote(wallet, qty) returns.
Where does the art live?
Inside the contract. DogRenderer holds the trait tables and the pixel spans in
its own bytecode and builds the SVG during an eth_call; tokenURI
hands back a data:application/json;base64 blob with that SVG inlined. No IPFS
CID, no HTTP host, nothing that can 404 in five years.
Can the team change the art later?
No. The renderer address is immutable, fixed in the constructor, and the
collection has no setBaseURI, no setRenderer and no reveal flag —
those functions were removed, not just left unused.
How do I know the pictures match the contract?
The Python art engine and the Solidity renderer are diffed against each other pixel by
pixel across all 5,555 token ids before deploy
(scripts/verify_onchain.js). The officers on this page are the strings the
contract returns.
Why dogs in uniform?
Rank looks good on a dog.
Dog Officers