abx.
Reference

Deployments

The canonical, shared ABX infrastructure — the clone factories (trust anchors) and the stateless singletons every project reuses, deployed as public goods.

The machine-readable source of truth is packages/sdk/src/deployments.ts (keyed by EIP-155 chainId). This page mirrors it for humans — if the two ever disagree, the manifest wins, and the drift is a bug. The toolkit resolves every address by override → env → manifest: a --factory/--renderer/… flag, then the matching ABX_* env var, then the manifest below.

Same address on every chain

Every contract below except the generator is deployed through the keyless CREATE2 proxy (, present on every EVM chain) with a canonical salt (contracts/script/AbxSalts.sol). Identical salt + identical initcode ⇒ the same address on every chain — so the whole infra set is one address list, and a new chain deploys to the same addresses (computable before the first transaction). The factory implementations are cross-chain-identical too: a factory does exactly one CREATE at nonce 1 from its own (identical) address.

Production (mainnet)

None yet. ABX is in a testnet-only alpha — the supported chain targets today are sepolia and base-sepolia (see SDK → Chains). Mainnet and L2 production entries are intentionally absent until the canonical set is deployed and funded on those chains (Distribution roadmap). When they are, these addresses are the same there too.

Canonical infrastructure (Sepolia · Base Sepolia — identical)

ContractEnv overrideAddress (all chains)
OneOfOneImageFactory (1/1 anchor)ABX_FACTORY
SeriesImageFactory (Series anchor)ABX_SERIES_FACTORY
SeriesCodeFactory (code anchor)ABX_SERIES_CODE_FACTORY
AbxMetadataRenderer (spec v4)ABX_RENDERER
AbxChunkStore (SSTORE2 reader)ABX_CHUNK_STORE
AbxFixedPriceMinter (shared sale)ABX_FIXED_PRICE_MINTER
AbxSeedSource (mint-time randomness)ABX_SEED_SOURCE
OneOfOneEditionFactory (1/1-edition anchor)ABX_ONE_OF_ONE_EDITION_FACTORY
EditionImageFactory (edition anchor)ABX_EDITION_FACTORY
EditionCodeFactory (code-edition anchor)ABX_EDITION_CODE_FACTORY
AbxFixedPriceMinter1155 (per-id edition sale)ABX_FIXED_PRICE_MINTER_1155

Factory EIP-1167 implementations (also identical on every chain): OneOfOneImage · SeriesImage · SeriesCode · OneOfOneEdition · EditionImage · EditionCode .

The ERC-1155 editions unit (the three edition factories, their implementations, and AbxFixedPriceMinter1155) deployed 2026-08-05 — the strict twins of the 721 lineup (see Contracts). Nothing 721-side moved: the editions are additive, and the shared renderer/chunk-store/seed-source singletons serve both standards unchanged.

All three factories (and their implementations, plus AbxParamsLib) were redeployed 2026-08-04 for opt-in ERC-721C creator-token support: InitParams gained a transferValidator field and every token type composes the CreatorToken mixin. Projects deployed from the previous anchors — OneOfOneImageFactory 0xB9eEE39D…5F134Ca, SeriesImageFactory 0x9d97C001…E60639A, SeriesCodeFactory 0xADE45e2D…100F5503 — keep working on their frozen implementations.

The SeriesCode unit (factory, implementation, AbxParamsLib, both generators, the renderer) had previously been redeployed 2026-08-03 for on-chain param enumeration (renderer spec v4). Projects deployed from those earlier anchors — factory 0x77f61Ead…5a73Bd87, impl 0xfd2034B6…358D4053 — keep working against the generator and renderer they were deployed with; the pre-enumeration generator still reads their params.keys list.

The factory address is the trust anchor: a contract is canonical when the chain's factory deployed it (verified via isAbxClone, not the spoofable AbxDeployed beacon — see Authenticity). The rest are stateless, ownerless singletons referenced by address.

Per-chain (the generator)

AbxGenerator (ABX_GENERATOR) — the animation_url field renderer for code projects — bakes chain-specific immutables (per-chain runtime-asset pointers and the dependency registry), so its address differs per chain:

ChainAbxGenerator
Sepolia (11155111)
Base Sepolia (84532)

Linked libraries and external pointers

  • SeriesCode write-path libraries (delegatecalled by the implementation, never called directly; CREATE2-deterministic, so identical on both chains): AbxParamsLib , AbxCodeLib .
  • EditionCode write-path libraries (same pattern; identical on both chains): AbxEditionLib (new), AbxParamsLib (new bytecode — the adaptive any-holder TokenOwner leg; SeriesCode keeps its original lib above), and the shared, unchanged AbxCodeLib .
  • Art Blocks DependencyRegistryV0 (ABX_DEPENDENCY_REGISTRY) — the name@version resolution root ABX reads but never deploys: Sepolia ; Base Sepolia has none (collections point at their own, or the resolver's built-in CDN map).

Verifying an address

Every contract on this page is source-verified on both chains — open any address in the explorer (Etherscan for Sepolia, Basescan for Base Sepolia) and you can read the exact Solidity it runs, rather than taking our word for it. The trust anchors are meant to be audited, so a canonical address that shows up unverified is a bug worth reporting.

Any address here is also checkable on-chain — the renderer, for example, reports its spec:

cast call <renderer> "specVersion()(uint256)" --rpc-url <rpc>   # → 4

Adding or updating a chain

Standing up a new chain runs the same script/Deploy*.s.sol with the same salts → the same addresses as above (the canonical set), so you can publish them before the first transaction. Deploying a fresh singleton (or a new contract revision) is an owner op that ends in a manifest edit. See the contract-change checklist, the authoritative workflow (redeploy → verify → update deployments.ts and this page).

On this page