Zum Hauptinhalt springen

Contract Reference

v1.2 soToken Contracts

v1.2 introduces the new soToken family:

ContractPurpose
SoTokenNativeV1_2ERC-20-compatible token plus LOA/BOA object ledger
SoTokenFactoryV1_2Launches native LOA/BOA contracts
SoTokenMarketV1_2Lists and sells active transferable objects
SoTokenITOInitial Token Offering for native soTokens
SoTokenMediaStorageV1_2Stores flat 50 KB on-chain media items for animation, audio, markdown, and simple media
SoTokenRendererV1_2Returns metadata for flat image, animation, audio, and markdown objects
SoTokenLayeredImageStorageV1_2Stores named image layers, per-layer traits, MIME types, and weights
SoTokenLayeredImageRendererV1_2Composes one selected trait per image layer into on-chain SVG metadata

Base mainnet v1.2

ContractAddress
SoTokenFactoryV1_2Set after deploy
SoTokenMarketV1_2Set after deploy

Base Sepolia v1.2

ContractAddress
SoTokenFactoryV1_2Set after deploy
SoTokenMarketV1_2Set after deploy

Compatibility Contracts

The following deployed contracts remain supported for PixelCats v0.8 proto-BOA and AGENTZ v1.0.1 BOA compatibility. Some internal contract names still contain older naming because those names are part of the deployed ABI and source history.

Base mainnet

ContractAddress
AGENTZ v1.0.1 BOA Factory0xe3280D564f3248A532539365DcaCc3281791CD6A
AGENTZ v1.0.1 BOA Market0xB16A75FD6D36360a6C370f86c2b6cBEfF7E7d859
AGENTZ v1.0.1 Default Seed Module0xd907FB49C092942c3c69fEB28498E5FBdd0b33fE
AGENTZ v1.0.1 Uniswap v4 Seed Module0xBE695E965cC464198B660fE38B4924a923752585
AGENTZ v1.0.1 Native Token Deployer0xaeD2c62C329774Ba57c773473B4bC1D1e27898E1
EpegLedgerDeployer0xC26a28d240fb344C26b9F15cfc3487FB15523fB1
Treasury0x3F40459c71e3BD0A8fE7952ED47DEDcfd8C279FC

Base Sepolia

ContractAddress
BOA v1.0.1 Factory0x182796ccD77a601923c3945B1FaeB8E929a80f06
BOA v1.0.1 Market0x65F35D2c8c4E299AA5575C34Bc02A9134D7efb9e
BOA v1.0.1 Default Seed Module0xc001826EbE807A72d5795944dE3Bf266b5feC290
BOA v1.0.1 Uniswap v4 Seed Module0xCbf8a774236018dA0cb6656314a95E0db4787750
BOA v1.0.1 Native Token Deployer0x7D9E661592F68e5136823C422Fc673f661a0927B

v1.2 Ledger Interface

Core reads and writes:

function objectState(uint256 objectId) external view returns (ObjectState);
function ownerOfObject(uint256 objectId) external view returns (address);
function objectURI(uint256 objectId) external view returns (string memory);
function claim(uint256 amount, bytes calldata context) external returns (uint256[] memory);
function claimFor(address owner, uint256 amount, bytes calldata context) external returns (uint256[] memory);
function transferObject(address to, uint256 objectId) external;
function transferObjectFrom(address from, address to, uint256 objectId) external;
function setObjectApprovalForAll(address operator, bool approved) external;
function isApprovedForObject(address owner, address operator, uint256 objectId) external view returns (bool);

Compatibility aliases such as ownerOfBpeg and transferBpegFrom exist where needed for older app and market integrations. New integrations should use ownerOfObject, transferObject, and transferObjectFrom.

AGENTZ v1.0.1 BOA Factory

The AGENTZ v1.0.1 BOA factory deploys older BOA-native tokens. The ABI function name is historical:

function createNativeBpegToken(
string calldata name,
string calldata symbol,
uint256 initialSupply,
uint256 interval,
uint256 maxObjects,
address renderer,
address seedModule,
uint16 royaltyBps
) external returns (address ledger);

If seedModule is zero, the factory uses the v1.0.1 default seed module.

Ledger interface

Core reads and writes:

function supportedCount(address owner) external view returns (uint256);
function activeCapacity(address owner) external view returns (uint256);
function objectsOf(address owner, uint256 cursor, uint256 limit) external view returns (uint256[] memory);
function ownerOfBpeg(uint256 objectId) external view returns (address);
function objectURI(uint256 objectId) external view returns (string memory);
function claim(uint256 amount, bytes calldata context) external returns (uint256[] memory);
function claimFor(address owner, uint256 amount, bytes calldata context) external returns (uint256[] memory);
function sync(address owner) external returns (uint256 removedCount);
function transferBpeg(address to, uint256 objectId) external;
function transferBpegFrom(address from, address to, uint256 objectId) external;
function setBpegApprovalForAll(address operator, bool approved) external;
function setBirthHook(address hook, bool approved) external;

Marketplace

The AGENTZ v1.0.1 BOA market lists and sells Mirage-native objects:

function list(address ledger, uint256 objectId, uint256 price) external returns (uint256 listingId);
function buy(uint256 listingId) external payable;
function delist(uint256 listingId) external;
function activeListingId(address ledger, uint256 objectId) external view returns (uint256);
function getFees(address ledger, uint256 objectId, uint256 price)
external view returns (uint256 protocolCut, uint256 royaltyCut, uint256 sellerCut);

The market calls the compatibility transfer function for that older BOA generation, not ERC-721 transfer functions.

Renderers

v1.2 renderers implement:

function objectURI(
uint256 objectId,
uint256 seed,
address owner,
uint256 sourceBalance,
uint256 interval,
ObjectState state
) external view returns (string memory);

The v1.2 layered image renderer supports weighted on-chain image layers and includes object state in metadata. Older v1.0.1 layered renderers use the historical five-argument renderer interface.

Older addresses

Older contractAddress
Older factory0x4D9639AB37a9cA00E80B4Aca198aC649d02995c4
Older router0x856255bC5D79AdA826C0B187078bD64bb4416795
Older marketplace0x07AAEEa34a6Dfdd0D2A527bAa7d992Bb6504a40D
PixelCats v0.8 proto-BOA0xD7800C338228a6eeb37cF74133732Fb6aE05915F
ClankerCats renderer0x2fE5bf2aB284bc71B261Ea6d32aaadfcA987Eeb8
ClankerCats ERC-7210xbE76Ce3cE0966fedA606fCF70884dae8FBaa7FCF
CLKCAT0x84a5637CcAC19250156e582c5bF7C01Eee151b07