Operating manual · Starcies Model 4000
Edition 2026.10 · Starknet
chain id 0x534e5f4d41494e
Operating manual
4000 Starcies, animated pixel bodies drawn by a Cairo contract on Starknet and caught with a net that crosses the field every 30 minutes. How to catch one, how the art is put together, and what the market charges.
Specifications
Everything below is enforced by the contracts. Values marked with a lamp are read live from Starknet while the page is open.
read live from the chain
Collection
- Supply
- owner-adjustable until frozen
- Caught
- bodies taken from the field
- Species
- 7 orders
- Grid
- 64 × 64cells per body
- Storage
- On-chain
token_uri→data: - Reveal
- Nonetraits are public before the catch
Catch
- Price
- per body, plus gas
- Limit
- paid catches per receiving wallet
- Batch
- 250at most per transaction
- Modes
- Any × n, or a targeta target names up to 64 candidates
- Escape
- Fallback oncatches another body from the net
- Net
- the owner can close and reopen it until sealed
Field
- Size
- 232 × 232a torus: the edges wrap
- Pass
- one sweep, top to bottom
- Band
- the net's height
- Window
- per body, per pass
- Offered
- ≥ 6 s leftthe site only offers bodies with time to land
- Drift
- 4 speeds · 8 headingsevery body moves; positions are on-chain
Market
- Fee
- paid by the seller, at most 5%
- Royalty
- ERC-2981, paid by the seller, at most 10%
- Currency
- STRKgas is paid in STRK too
- Offers
- No escrowSTRK stays in your wallet until a holder accepts
- Batch
- 50listings, buys or sweep items per transaction
- State
- cancels work even while paused
Chain
- Network
- Starkneta validity rollup on Ethereum
- Chain id
- SN_MAIN
0x534e5f4d41494e - Blocks
- ≈ 2 spre-confirmed
- Settles
- EthereumSTARK proofs verified on L1
- Accounts
- Native account abstractionevery account is a contract; multicall in one transaction
- Gas
- STRKv3 transactions
Standards
- ERC-721
- Ownershiptoken ids are the field's bodies, 1 to max supply
- ERC-2981
- Royalty
royalty_info() - ERC-4906
- Refresh
MetadataUpdate(id) - Ownable
- 2-steprenouncing is disabled
- SRC5
- Receiversa contract recipient must accept ERC-721
- Source
- CairoMIT licence
Operation
Every body already exists, drifting on the field. Every 30 minutes the net, a band one sixteenth of the field tall, sweeps it from top to bottom. Only bodies inside the band can be caught.
Pick the network
Starknet
Starknet wallets know the network already. Press Connect to check; it reads “On the right network” when your wallet is on Starknet.No wallet connected
Fund the wallet
STRK × n + gas
Withdraw STRK from an exchange on the Starknet network, or bridge and swap. Ready and Braavos also sell STRK in the app.Connect
Ready, Braavos, Xverse, Keplr, OKX
Installed wallets appear in the list on their own. Every Starknet account is a smart account, so contracts can catch too. The site never asks for keys or seed phrases.Wait for the net
one pass every
The band crosses the field; a body stays inside for about seconds per pass. The drawing shows where the band is now.Catch
any × n, or a target
Press Catch any × n and the contract picks from the net, or tap a body to target it (up to 64 candidates). One multicall approves exactly the price, then catches.Keep or tune
holders only
Flags and inscriptions (section 4) and the three mechanics (section 3) rewrite the art on-chain. Each change emits ERC-4906, so marketplaces refresh.
Mechanics
Three optional holder actions. Each one rewrites the art on-chain, for every viewer, and shows up in the token's traits.
Mimicry
wear_mask·drop_mask- Mask
- any other species
- Bias
- −wearers ÷ 2, at most −8
- Cooldown
- 1 day
Wear another species as a mask. The more bodies wear the same mask, the worse it holds: one wearer is perfect, sixteen is dust.
Chorus
pulse- Beat
- 4 s · timestamp ÷ 4
- Seats
- up to 8, one per owner
- Cooldown
- 1 hour
Bodies pulsed in the same 4-second beat form a choir. Each seat moves a step behind the one before, so up to eight owners animate in canon.
Drift
strike·set_moored- Speed
- 4 classes · 8 headings
- Strike
- 30 min cooldown, both bodies
- Moor
- 10 min cooldown
Every body drifts on the torus. Two in contact and closing in can strike: they swap momentum. A moored body holds still.
Controls
Holders change how their body is drawn. Every control is a contract call: each change rewrites the art on-chain and emits ERC-4906, so marketplaces refresh. Try them here; nothing is sent.
Flag switches · set_flags
4 bitsInvert swaps ink and paper. Mirror flips the body. Freeze stops the motion. Text hides the letter stream.
0b0000 = 0Up to 32 glyphs from A–Z 0–9 . , ! ? - ' # : / + = * ( ) _. Replaces the letter stream; an inscription still shows with Text on.
The real controls live on each plate in Observe, for its owner only.
Observe your specimensResult
same engine as the chain- Invert
- swaps ink and paper
- Mirror
- flips the body
- Freeze
- stops the motion
- Text
- hides the letter stream
Market
Starcies runs its own market contract. Buyers pay the listed price and gas. The seller pays the fee and the royalty, deducted at settlement. Nothing is held in escrow.
Worked example
fee and royalty read live- seller receives
- royalty
- fee
Seller receives = price × (1 − fee_bps / 10000 − royalty_bps / 10000), each part rounded down. Today fee_bps = —, royalty_bps = —. The buyer pays 100.00 STRK and network gas, nothing else.
The fee goes to the market treasury, and the royalty to the royalty receiver. The fee is at most 5% and the royalty at most 10%; a later raise never applies to a standing listing, which stays invalid until it is listed again.
Limits
Reading- Listings
- Up to 50 per transactionapprove the market once, then list in bulk
- Buy
- A cart of up to 50, all or nothingeach line carries the most you agreed to pay
- Sweep
- Up to 50 itemsone transaction, up to 100 candidates, your own listings skipped
- Offers
- No escrowSTRK stays in your wallet until a holder accepts; keep the balance to keep it valid
- Collection offer
- Quantity 1–1,000fills any body at one price, one per wallet
- Durations
- 1 day · 7 days · 30 days · 6 monthscontract maximum 180 days
- Paused
- Buys, sweeps, listings, offers and acceptances stopcancels always work
Contracts
The addresses that make up the instrument. Copy them, or open them on Voyager and read the contracts yourself.
Starcies
ERC-721 · the net
0x0049d926f483a5fbd30e2bc78fab8901d3da9035156f9aecfa025548a6e377b1Renderer
SVG + HTML
Market
STRK · non-custodial
0x01e259c0429bf7d9b13bbb45286bc804cd5221b2eea5ac1a429c6148c199b586STRK
ERC-20 · payments
0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938dOwner
Ownable 2-step
Caught
Syncingof
- Price
- Cap
- Net
- Supply
- Renderer
Your wallet
No wallet connected
- Public RPCrate-limited
https:// api. zan. top/ public/ starknet-mainnet/ rpc/ v0_10 - Explorer
- Voyager (opens in a new tab)
Anatomy of a plate
One body, seven parts. render_input(id) gathers them into one struct and the renderer composes one image. The numbers are the share of all tokens that draw each value from the seed.
Field
FieldThe ground colour, one of five.
Paper 30Ash 15Ink 42Cyanotype 9Acid 4, in percent of all tokens
Screen
ScreenA 4 × 4 threshold matrix turns tone into pixels.
Bayer 32Checker 38Scanline 10Cluster 20, in percent of all tokens
Grain
GrainThe shape of each lit cell.
Plus 30Block 45Diamond 15Dot 10, in percent of all tokens
Stream
InscriptionA letter stream in a 3 × 5 pixel font, different on every token. Holders may replace it with up to 32 glyphs.
Accent
AccentA second colour taken from the field palette.
None 20Echo 20Specimen 20Signal 15Trace 25, in percent of all tokens
Motion
MotionHow the body moves, at a tempo of 4, 6 or 8 seconds.
Breathe 30Shed 25Sway 20Flicker 15Pulse 10, in percent of all tokens
Body
Species · frame56 species from the atlas, stored as felt252 constants. Framed full, close (1.5×) or macro (2×).
Full 60Close 30Macro 10, in percent of all tokens
Signal path
There is no image file anywhere. The token is computed from chain state every time it is read, and this site runs the same code to draw what you see here.
seed · flags · inscription · mask · chorus · drift · one struct (Starcies contract)
- seed · flags · inscription
- mask · chorus · drift
- one structStarcies contract
atlas as felt252 constants · species (live) · particles.js stored on-chain
- atlas as felt252 constants
- specieslive
- particles.js stored on-chain
image = SVG (CSS motion) · animation_url = HTML (60 fps particles)
- image = SVGCSS motion
- animation_url = HTML60 fps particles
same atlas, same particles.js · <img data:svg> (sandboxed iframe)
- same atlas, same particles.js
<img data:svg>sandboxed iframe
both outputs compared byte for byte · a mismatch is a bug, never a style
- both outputs compared byte for byte
- a mismatch is a bug, never a style
No IPFS. No server.
If this website disappears, token_uri still returns the full image and the animation straight from Starknet.
Troubleshooting
What people run into, why it happens, and what to do. If your problem is not here, read the contract on the nameplate.
| No. | Symptom | Cause | Remedy |
|---|---|---|---|
| 8.1 | The wallet shows an approval and a catch | One multicall approves exactly STRK × n, then catches. Gas is paid in STRK on top. | Nothing to fix. No open-ended allowance is requested. |
| 8.2 | A catch over the limit is refused | The limit is paid catches per receiving address, counting catches others sent to it. One transaction holds at most 250. | By design. Each address can receive up to paid catches from the mint. |
| 8.3 | My catch “escaped” | The body left the band, or was caught first, before the transaction landed (Escaped revert). | Keep the fallback on: it catches another body from the net. The site only offers bodies with at least 6 s left. |
| 8.4 | I can’t find a reveal date | There is none. Every seed is public from genesis. | Hover any body on the field to read its traits before you catch it. |
| 8.5 | Royalty wasn’t paid on another marketplace | ERC-2981 reports the royalty; paying it is up to each marketplace. | Trade on the Starcies market, which always pays the royalty and the platform fee. |
| 8.6 | A marketplace shows old art | Each change emits ERC-4906 MetadataUpdate, but caches differ. | Use the marketplace’s refresh-metadata action. |
| 8.7 | No IPFS link for the image | token_uri returns a data: URI built by the Cairo renderer. | That is the image. Nothing is hosted off-chain. |
| 8.8 | A catch to a contract wallet fails | A contract recipient must accept ERC-721 tokens (SRC5). | Use a wallet or contract that implements the receiver interface. |
| 8.9 | The owner minted for free | Allowed until seal_mint() ends every mint path for good. | Every owner mint shows in the activity log. Once the mint is sealed, nobody can mint again. |
| 8.10 | The net is closed | The owner can close and reopen the net until every body is caught or the mint is sealed. | Wait for it to reopen, or trade caught bodies in the market. |
| 8.11 | Where did the mint STRK go? | It stays in the collection contract. | Only withdraw / withdraw_to by the owner moves it. |
| 8.12 | My listing no longer shows | A listing stops counting when the token moves, when it expires, when the market approval is removed, or after a fee or royalty raise. | List it again from Trade. A raise never charges a standing listing; it only pauses it. |
| 8.13 | The wallet is on another network | A Starknet wallet can hold accounts on several networks. | Press Switch network in section 6, or pick Starknet in the wallet. |
| 8.14 | My wallet is not in the list | Only installed wallets appear; the site detects them with the wallet standard. | Install Ready (opens in a new tab) or Braavos (opens in a new tab), then reload. On a phone, open the site inside the wallet app. |
8.1The wallet shows an approval and a catch
Cause · One multicall approves exactly STRK × n, then catches. Gas is paid in STRK on top.
Remedy · Nothing to fix. No open-ended allowance is requested.
8.2A catch over the limit is refused
Cause · The limit is paid catches per receiving address, counting catches others sent to it. One transaction holds at most 250.
Remedy · By design. Each address can receive up to paid catches from the mint.
8.3My catch “escaped”
Cause · The body left the band, or was caught first, before the transaction landed (
Escapedrevert).Remedy · Keep the fallback on: it catches another body from the net. The site only offers bodies with at least 6 s left.
8.4I can’t find a reveal date
Cause · There is none. Every seed is public from genesis.
Remedy · Hover any body on the field to read its traits before you catch it.
8.5Royalty wasn’t paid on another marketplace
Cause · ERC-2981 reports the royalty; paying it is up to each marketplace.
Remedy · Trade on the Starcies market, which always pays the royalty and the platform fee.
8.6A marketplace shows old art
Cause · Each change emits ERC-4906
MetadataUpdate, but caches differ.Remedy · Use the marketplace’s refresh-metadata action.
8.7No IPFS link for the image
Cause ·
token_urireturns adata:URI built by the Cairo renderer.Remedy · That is the image. Nothing is hosted off-chain.
8.8A catch to a contract wallet fails
Cause · A contract recipient must accept ERC-721 tokens (SRC5).
Remedy · Use a wallet or contract that implements the receiver interface.
8.9The owner minted for free
Cause · Allowed until
seal_mint()ends every mint path for good.Remedy · Every owner mint shows in the activity log. Once the mint is sealed, nobody can mint again.
8.10The net is closed
Cause · The owner can close and reopen the net until every body is caught or the mint is sealed.
Remedy · Wait for it to reopen, or trade caught bodies in the market.
8.11Where did the mint STRK go?
Cause · It stays in the collection contract.
Remedy · Only
withdraw/withdraw_toby the owner moves it.8.12My listing no longer shows
Cause · A listing stops counting when the token moves, when it expires, when the market approval is removed, or after a fee or royalty raise.
Remedy · List it again from Trade. A raise never charges a standing listing; it only pauses it.
8.13The wallet is on another network
Cause · A Starknet wallet can hold accounts on several networks.
Remedy · Press Switch network in section 6, or pick Starknet in the wallet.
8.14My wallet is not in the list
Cause · Only installed wallets appear; the site detects them with the wallet standard.
Remedy · Install Ready (opens in a new tab) or Braavos (opens in a new tab), then reload. On a phone, open the site inside the wallet app.
Edition 2026.10
Written against the Starknet deployment. Live values refresh while the page is open.
Not a PDF
A live document: lamps mark values read from Starknet, and specimens are drawn by the same engine the contract uses.
Starcies · Model 4000
4000 bodies · 56 species · one net, every 30 minutes.