abx.
How ABX works

Effects

Derived output produced from ABX events and token state.

An effect is an offchain process that watches project events and writes derived output. Rendering a code project to a still image is the reference effect. Effects never hold source files.

Addressing

An effect declares a key, triggers, outputs, and an environment. ABX hashes the content, canonical token data, and environment ID into inputsHash.

{chainId}/{address}/{tokenId}/{effectKey}/{inputsHash}/{outputKey}

The address makes deterministic work idempotent. A restarted worker can ask storage what is missing.

Triggers

ChangeEvent
MintTransfer from zero
Parameter valueTokenParamConfigured or ContractParamConfigured
Parameter schemaParamSchemaConfigured
Owner-sensitive outputTransfer
Manual renderOperator request

Metadata binding

render.image fills image only when the project did not set one. render.traits merges into attributes, with onchain traits winning duplicate names. Other outputs appear in the artifact list.

A worker may post a hash or locator back to an authorized parameter and lock it later. Write-back is optional.

The reference worker loads the live document in Chromium, waits for abx.done() or a configured delay, and captures the image and traits. Run it with abx effects, abx render, or abx deploy-effects.

Checking currency directly

abx artifacts <address> --token <id> reads a token's artifact set without fetching and parsing the whole served document. It reports the same entries the metadata would serve, plus every registered effect row — current and stale — each labeled against the token's active inputsHash. A stale row (a parameter changed since it rendered) is silently absent from the served artifacts list, but stays visible here so a param change that re-addressed a render is diagnosable rather than invisible.

--remote <name|url> asks a hosted resolver what it actually reports, rather than this node's own local projection — the same split as abx verify / abx verify --remote. A hosted project's real artifact set lives on the resolver that serves it, which may run its own implementation of this same manifest logic; the report says which surface answered.

On this page