STEPPER The processor
THE LAUNCHPAD

Write it. Run it. Then mint it.

A chip is a program and a processor together. Write the program here, assemble it here, and watch it execute on the same gate array the contract walks before you commit a single unit of gas to it.

The workbench is live now. The mint call opens at T-0, and nothing on this page pretends otherwise.

Launch state CHAIN 4663
§ 01 · THE WORKBENCH

Assemble it against the real gates.

The assembler below is the same one the build uses, reading its opcode numbers out of the netlist rather than keeping a second copy, so it cannot assemble an instruction the processor does not have.

Press assemble and the program is encoded, checked for reachability and loaded into a live machine. What you see running is the gate array, not a preview of it.

Program 0 words
Load an example
Running on the die CYCLE 0
Cycle0
PC0x000
Out0
Flags··
IN port · your byte 0 to 255 · what the program reads with in
Analysis Before you spend anything
Assembled ROM
op 5rd 4 rs 4imm 12 25 bits per word, to scale
Register file 16 × 8 bits
A program that halts is a chip that stops. Nothing can restart it except its owner, and a chip that has stopped earns nobody anything. That is not a bug to be fixed later: it is the reason chip #1 runs a loop with no hlt in it. The analysis panel says which kind yours is before the question costs you money.
§ 02 · THE VOCABULARY

Every word the machine knows.

Every instruction the ST-8 can execute, in the form the assembler expects it. There is no macro layer and no pseudo-instruction: what you write is one 25-bit word, and the four fields it splits into are drawn to scale in the listing above. The opcode field is five bits, so the thirty-two below are the entire vocabulary: nothing has been left off this page.

Click a row to drop it into the editor at the cursor. The opcode numbers come from the netlist, so this table cannot describe an instruction the silicon does not have.

Three things worth knowing before you write. A ld costs two cycles by construction: the address latches on one edge and the byte comes back on the next, exactly as it does in the contract. cmp and tst are a sub and an and that throw the result away and keep only the flags, which is how you compare and how you test a bit without spending a register. And jmpr takes its address from a register, so a jump table is a handful of ldis and one branch.
§ 03 · THE STRATEGY DESK

A chip that decides.

Feed the input port a price instead of a byte and the same processor becomes a strategy: it reads the quantised price, keeps whatever state it likes in its registers and its RAM, and puts an intent on the output port. Every decision it will ever make is a consequence of the gate table, so anybody can replay the whole thing.

Pick a market, pick a rule, and watch it run. The chart is the venue's, the tape below is the chip's, and every row on it came out of the same netlist the contract runs.

Input port The converter

A price is a continuous quantity and the port is eight bits wide, so something has to convert. It auto-ranges: the window tracks the market and the byte lands where the movement is, the way any instrument spends its resolution on the part of the range that is moving.

The die The processor

2,161 NAND gates decide. It holds the window in its registers, its history in its 256 bytes of RAM, and puts an intent on the output port. Every decision is a consequence of the gate table, so anybody can replay the run and get the same answer.

Output port The controller

A device on the far side of the port turns the byte into an order, the way a disk controller turns a port write into a seek. Swap the device and the same chip steers something else; swap the chip and the device never notices.

That split is what a bus is for, and it is how every processor that has ever controlled anything controlled it. A CPU has never placed an order in its life: it computes, it drives a port, and the peripheral does the work. IBus.sol holds that boundary, so a chip can be moved to another device and a device replaced without refabricating the chip.

Market
The chart is TradingView's, loaded from their servers. Nothing is requested from them until you press it.
The rule ·
Strategy
·

            
What it decided 0 cycles
One row per cycle, newest first. Simulated on the real netlist.
Eight bits is a window, not a ceiling. The converter maps the range that is actually trading onto the full swing, so the resolution sits where the decisions are: on a symbol moving one per cent, a byte resolves it about forty times finer than a naive map of the whole price would. The ST-16 widens the same window rather than replacing the idea, which is the honest reason to want one.
§ 04 · DESIGN YOUR CHIP

Two choices, and everything follows.

Supply is fixed at a billion and there is no mint function anywhere, so the only decisions that matter are how much goes to liquidity and how long the rest takes to leave. The arithmetic below is the factory's, run on the values you pick.

The chip
Name
Ticker Unique across the factory. Once taken, taken forever.
To liquidity
The rest stays in the factory as the mining reserve.
Emission runs for
Everything above is live. The mint call itself opens at T-0.
Specification plate Built from the form
The output port is the machine above, not a picture of it. Every row on the plate is either a fixed property of the ST-8 or a value read out of the processor running your program on this page.
§ 05 · WHAT THE MINT CALL DOES

One transaction, five consequences.

Written out because a button that says "mint" and nothing else is asking for trust it has not earned. This is the whole of it, in the order the contract performs it.

01

The ticker is claimed

Checked against every ticker already taken and written into storage. There is no rename, so this is the one irreversible line in the call.

02

The ROM is burned in

Your assembled words are stored with the chip. Nothing rewrites them afterwards: a chip's program is part of what the chip is.

03

The token is deployed

A fixed billion, minted once into the chip's own account. No mint function is written into it, so no further supply can ever exist.

04

Liquidity is seeded

The percentage you chose leaves for the pool in the same transaction. The rest stays as the mining reserve, with one door out of it.

05

The clock is opened

step() becomes callable by anybody. From that block onward your processor advances whenever somebody pays for it to.

What it costs Measured, once deployed
These are measured, not estimates. They are not somebody else's numbers copied across either. npm run evm deploys our own contracts into a real EVM and runs the processor through them; the figures include the 21,000 gas a transaction costs before it executes anything. The mint row fills in at T-0, when there is an address to measure.
Connecting is optional and stays that way. The workbench, the analysis and the plate all run in your browser against the real netlist. The first time this page asks you to sign anything is the mint call itself, which opens at T-0.
§ 06 · WHAT CANNOT HAPPEN

The guarantees are mechanical.

None of these is a promise. Each one is the absence of a function, which is a thing you can check in the bytecode rather than a thing you have to believe.

No mint

Supply is fixed at birth

There is no mint function anywhere. Not for the operator, not for the chip's owner, not for the factory. A billion units exist and that is the end of it.

No keeper

The clock belongs to nobody

step() takes no owner check. Whoever pays the gas takes the cycle and is written into the event as its sponsor.

No withdraw

The reserve leaves one cycle at a time

The only door out of the mining reserve is a step. There is no path that moves the token in bulk, including for whoever deployed the thing.

No upgrade

The gate array cannot change

It is pure, holds no state and has no owner. The silicon your chip runs on is the silicon it will always run on.

What is still owed, stated plainly. The contracts are written, compiled, and proved inside a real EVM block by block, for the ST-8 and for the generation after it. What has not happened is the deploy itself: until the transaction is sent, nothing here has an address and nothing can be minted. The workbench above never depended on any of that, which is why it is live today and the mint button is not.