ABX
Use ABXBuild and operate

Operate

Manage a live ABX project.

Every write accepts the same signing modes and --dry-run.

Ownership and policy

abx set-admin <address> --to 0xNewOwner
abx set-royalty <address> --bps 500 --receiver 0xReceiver
abx set-minter <address> --minter 0xMinter
abx set-primary-payee <address> --payee 0xPayee
abx pause <address>
abx unpause <address>

Royalty and supply ceilings can only fall. A project enrolled in 721C or 1155C may change or suspend its transfer validator, but it cannot leave the standard.

Metadata

abx set-token-uri <address> --uri https://metadata.example.com
abx set-contract-uri <address> --uri https://metadata.example.com
abx set-renderer <address>
abx set-renderer <address> --off
abx set-gateway <address> --ipfs https://gateway.example/ipfs/
abx refresh <address>

For an edition, run abx ping-uri <address> --token-ids <csv-or-range> after a contract-wide URI change if a consumer relies only on ERC-1155 URI events.

Add a named file or metadata field:

abx attach <address> <key> <uri>
abx set-field <address> --field <name> <options>

abx attach prints the canonical fetch URL and checks whether the resolver serves the project. The field write and resolver check are separate results.

Replacing a code project's script

abx replace-script <address> --script <file>

Before abx lock-script, replace-script sends only changed chunks, applies them atomically, and checks the assembled result. It refuses a locked script or non-code contract.

Both commands accept --chunk-size <bytes>. The default onchain split is about 22 KB.

Supply and transfers

abx mint <address>
abx transfer <address> --token 0 --to 0xRecipient
abx set-max-invocations <address> --max 100

Editions use token IDs and amounts:

abx mint <address> --token-id 0 --amount 2
abx transfer <address> --token 0 --amount 2 --from 0xSender --to 0xRecipient
abx set-max-supply <address> --token-id 0 --cap 100

Permanent locks

abx lock-field <address> --field image
abx lock-uri <address>
abx lock-uri <address> --collection
abx lock-script <address>
abx lock-dependencies <address>
abx lock-param-hooks <address>

Each lock is independent. Freezing one setting does not freeze another. URI locks do not freeze parameters. Metadata locks do not freeze bytes held by an external dependency registry. abx lock-param-hooks freezes the configure, augment, and transfer hook addresses. An active transfer hook can reject transfers and mints. Confirm every served field before locking.

Never lock a token or collection URI to a domain you do not control. A base URI can be changed until you lock it; after that, it is permanent. If you use a managed resolver, route a domain you control to it and verify that route before locking. ABX Services does not currently support custom-domain routing, and the CLI refuses to lock any abx.io URI.

abx lock-field checks whether token or collection scope serves the visible value. It refuses the wrong scope and prints the right command. --force-field can lock a non-serving scope deliberately.

abx state <address> reports URI, script, dependency, hook, and standard metadata locks. Custom field locks require an indexer over ContractFieldLocked events.

Freeze a parameter by locking its schema:

abx set-schema <address> --schema <key>:<Type>:<Auth>:lock=now

Verify

Local verification needs a local registration:

abx add <address>
abx verify <address> --json

Use abx verify <address> --remote <name|url> for a hosted project.

The result separates two questions:

FieldMeaning
contentIntegrityDo served bytes match onchain hash commitments?
availabilityIs the expected content available now?

Only an integrity mismatch makes the command exit nonzero. Missing renders and unconfirmed external locators affect availability instead. The result also reports whether the metadata renderer and generator match the current canonical addresses. not current may mean an older or custom contract; it does not mean the project is broken.

For code projects, onChainUri.chainComplete reports whether the template and dependencies resolve entirely to onchain bytes. It is null for static image projects.

Local state

abx state <address> reads the contract, including every irreversible lock (see "Permanent locks" above). abx tokens <address> lists indexed tokens. abx forget <address> removes only the local registration; it does not touch the chain.

On this page