Skip to content

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.

Parts list, section 7
4000bodies, all on-chain
per catch, live
per wallet
species, 7 orders
1 · Specifications

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-chaintoken_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_MAIN0x534e5f4d41494e
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
Royaltyroyalty_info()
ERC-4906
RefreshMetadataUpdate(id)
Ownable
2-steprenouncing is disabled
SRC5
Receiversa contract recipient must accept ERC-721
Source
CairoMIT licence
2 · Operation

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.

232232sweep30:002281/16in the net ≈ 112 scatchable until the band passes
The band is drawn at its live position once the chain answers.Edges wrap: a body leaving one side re-enters on the other. in the net drifting caught
  1. 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

  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
3 · Mechanics

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

    124816WEARERS OF THE SAME 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

    0 s4 s8 s12 s16 s
    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

    BEFOREAFTER
    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.

4 · Controls

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 bits

Invert swaps ink and paper. Mirror flips the body. Freeze stops the motion. Text hides the letter stream.

Flags registernone set0b0000 = 0
0 / 32

Up 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 specimens

Result

same engine as the chain
5 · Market

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
A sale at100.00STRK
  • 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
6 · Contracts

Contracts

The addresses that make up the instrument. Copy them, or open them on Voyager and read the contracts yourself.

Model 4000 · Starknet · SN_MAIN
  • Starcies

    ERC-721 · the net

    0x0049d926f483a5fbd30e2bc78fab8901d3da9035156f9aecfa025548a6e377b1
    Voyager
  • Renderer

    SVG + HTML

  • Market

    STRK · non-custodial

    0x01e259c0429bf7d9b13bbb45286bc804cd5221b2eea5ac1a429c6148c199b586
    Voyager
  • STRK

    ERC-20 · payments

    0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
    Voyager
  • Owner

    Ownable 2-step

Deployed at block 16,270,993 (opens in a new tab) · renderer and owner read liveCairo source, MIT licence, verified on Voyager

Caught

Syncing
Syncing

of

Price
Cap
Net
Supply
Renderer

Your wallet

No wallet connected

Public RPCrate-limited
https://api.zan.top/public/starknet-mainnet/rpc/v0_10
7 · Anatomy

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.

Exploded view · seven parts, numbered as in the list · the body is a real caught token.
  1. Field

    Field

    The ground colour, one of five.

    Paper 30Ash 15Ink 42Cyanotype 9Acid 4, in percent of all tokens

  2. Screen

    Screen

    A 4 × 4 threshold matrix turns tone into pixels.

    Bayer 32Checker 38Scanline 10Cluster 20, in percent of all tokens

  3. Grain

    Grain

    The shape of each lit cell.

    Plus 30Block 45Diamond 15Dot 10, in percent of all tokens

  4. Stream

    Inscription

    A letter stream in a 3 × 5 pixel font, different on every token. Holders may replace it with up to 32 glyphs.

  5. Accent

    Accent

    A second colour taken from the field palette.

    None 20Echo 20Specimen 20Signal 15Trace 25, in percent of all tokens

  6. Motion

    Motion

    How the body moves, at a tempo of 4, 6 or 8 seconds.

    Breathe 30Shed 25Sway 20Flicker 15Pulse 10, in percent of all tokens

  7. Body

    Species · frame

    56 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.

render_input(id)Source of truth

seed · flags · inscription · mask · chorus · drift · one struct (Starcies contract)

RendererCairo · on-chain

atlas as felt252 constants · species (live) · particles.js stored on-chain

token_uri → data:application/jsonWhat wallets read

image = SVG (CSS motion) · animation_url = HTML (60 fps particles)

engine/render.tsThis site

same atlas, same particles.js · <img data:svg> (sandboxed iframe)

Parity harnessByte-identical

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.

8 · Troubleshooting

Troubleshooting

What people run into, why it happens, and what to do. If your problem is not here, read the contract on the nameplate.

  1. 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.

  2. 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.

  3. 8.3My catch “escaped”

    Cause · The body left the band, or was caught first, before the transaction landed (Escaped revert).

    Remedy · Keep the fallback on: it catches another body from the net. The site only offers bodies with at least 6 s left.

  4. 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.

  5. 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.

  6. 8.6A marketplace shows old art

    Cause · Each change emits ERC-4906 MetadataUpdate, but caches differ.

    Remedy · Use the marketplace’s refresh-metadata action.

  7. 8.7No IPFS link for the image

    Cause · token_uri returns a data: URI built by the Cairo renderer.

    Remedy · That is the image. Nothing is hosted off-chain.

  8. 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.

  9. 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.

  10. 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.

  11. 8.11Where did the mint STRK go?

    Cause · It stays in the collection contract.

    Remedy · Only withdraw / withdraw_to by the owner moves it.

  12. 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.

  13. 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.

  14. 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.