INTERFACE / FOR MACHINES

The launchpad, as tools.

Nine calls, all synchronous, all JSON in and JSON out, none of them ever throwing. Everything an agent needs to design a processor, mint it, keep it alive and read back what it did.

TOOLS
LOCAL CHIPS
GATES

BUILT · NOT DEPLOYED / THE FACTORY IS LOCAL TO THIS BROWSER

WINDOW.TRENCHIT LOCAL

EVERY CALL RUNS IN THIS TAB, AGAINST THESE GATES

TOOLS
CHIPS0
STORE
GATES
ready window.trenchit

§ 01 THE TOOLS

Table of calls.

Every tool takes one object and returns one. Nothing throws: a call that cannot be answered comes back as {ok:false, error}, so an agent never needs a try block. The JavaScript surface also accepts the positional form, which is why power(1, 42) and power({id:1, byte:42}) are the same call.

This table is built at runtime from the same manifest the site serves as a file, so it cannot describe a call that does not exist.

THE WINDOW.TRENCHIT SURFACE — TOOLS
TOOL CALL INPUT WHAT IT DOES

EVERY ANSWER IS PLAIN JSON — NO DOM NODES, NO TYPED ARRAYS, NO PROMISES. OPCODES, BYTES OF RAM AND SHIPPED PROGRAMS SIT BEHIND THEM.

§ 02 THE MANIFEST

MCP-shaped JSON, copyable.

The same tools, written down the way a tool-using model expects to read them: a name, a description, and a JSON Schema for the one object each call takes. It is served as a file, so an agent can be pointed at it rather than at a page.

TOOLS.JSON

The file and this block are the same object: the page renders trenchit.manifest(), and tools.json on disk is that call written out. Neither can drift from the functions, because both are generated from the table the functions are declared in.

OPEN /TOOLS.JSON TRANSPORT · IN-PAGE RPC ENDPOINT — PENDING —

SHOW THE MANIFEST
loading…

§ 03 THE CONSOLE

Type a call, watch it run.

This is the real surface, not a transcript. What you type here is what an agent sends, the chips you mint here are the chips on the launchpad, and the cycles you pay for are run by the same gate array the databook draws.

HOW IT DISPATCHES NO EVAL

The console parses the line itself. It reads trenchit. then a name, checks that name against the tool table above, and reads the arguments with a hand-written scanner that can only produce numbers, strings, true, false, null, arrays and plain objects. There is no rule in it for an identifier, so there is no way to name a function or a global. eval and new Function appear nowhere on this page.

ARROW UP AND DOWN WALK THE HISTORY · ESCAPE CLEARS THE LINE

Minting here is local: a real TRENCH-8 with the program you chose in its ROM, stored in this browser and nowhere else. LOCAL · NOT ON CHAIN

§ 04 WHEN THE FACTORY SHIPS

The same calls over RPC, marked pending.

Nothing below exists yet. When the factory is deployed the surface does not change shape: the reads become eth_call, mint and power become transactions, and the answer an agent gets back has the same fields it has today.

ONE CYCLE, FROM A SHELL — PENDING
# nothing is deployed. there is no address to put in $FACTORY yet.
# when there is, one paid cycle is one transaction:

cast send $FACTORY "tick(uint256,uint8)" 1 0x2a --rpc-url $RPC

# and reading the flops back costs nothing and asks no permission:

cast call $FACTORY "read(uint256)((uint16,uint8,uint8[16],uint8,bool))" 1 --rpc-url $RPC
STATUS
BUILT · NOT DEPLOYED
NETWORK
FACTORY
GATE ARRAY
TOKEN
MARKET
RPC ENDPOINT
MANIFEST
LOCAL FACTORY

Nothing here is deployed.

The tools on this page run in this tab, against gates in this tab, and write to this browser and nowhere else. There is no factory contract, no token and no market, and no address has been invented to stand in for one. When R1 ships, those fields fill in from one file — config.js — and no other line of this page moves.