본문으로 건너뛰기

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