Contract Reference
v1.2 soToken Contracts
v1.2 introduces the new soToken family:
| Contract | Purpose |
|---|---|
SoTokenNativeV1_2 | ERC-20-compatible token plus LOA/BOA object ledger |
SoTokenFactoryV1_2 | Launches native LOA/BOA contracts |
SoTokenMarketV1_2 | Lists and sells active transferable objects |
SoTokenITO | Initial Token Offering for native soTokens |
SoTokenMediaStorageV1_2 | Stores flat 50 KB on-chain media items for animation, audio, markdown, and simple media |
SoTokenRendererV1_2 | Returns metadata for flat image, animation, audio, and markdown objects |
SoTokenLayeredImageStorageV1_2 | Stores named image layers, per-layer traits, MIME types, and weights |
SoTokenLayeredImageRendererV1_2 | Composes one selected trait per image layer into on-chain SVG metadata |
Base mainnet v1.2
| Contract | Address |
|---|---|
SoTokenFactoryV1_2 | Set after deploy |
SoTokenMarketV1_2 | Set after deploy |
Base Sepolia v1.2
| Contract | Address |
|---|---|
SoTokenFactoryV1_2 | Set after deploy |
SoTokenMarketV1_2 | Set 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
| Contract | Address |
|---|---|
| AGENTZ v1.0.1 BOA Factory | 0xe3280D564f3248A532539365DcaCc3281791CD6A |
| AGENTZ v1.0.1 BOA Market | 0xB16A75FD6D36360a6C370f86c2b6cBEfF7E7d859 |
| AGENTZ v1.0.1 Default Seed Module | 0xd907FB49C092942c3c69fEB28498E5FBdd0b33fE |
| AGENTZ v1.0.1 Uniswap v4 Seed Module | 0xBE695E965cC464198B660fE38B4924a923752585 |
| AGENTZ v1.0.1 Native Token Deployer | 0xaeD2c62C329774Ba57c773473B4bC1D1e27898E1 |
EpegLedgerDeployer | 0xC26a28d240fb344C26b9F15cfc3487FB15523fB1 |
| Treasury | 0x3F40459c71e3BD0A8fE7952ED47DEDcfd8C279FC |
Base Sepolia
| Contract | Address |
|---|---|
| BOA v1.0.1 Factory | 0x182796ccD77a601923c3945B1FaeB8E929a80f06 |
| BOA v1.0.1 Market | 0x65F35D2c8c4E299AA5575C34Bc02A9134D7efb9e |
| BOA v1.0.1 Default Seed Module | 0xc001826EbE807A72d5795944dE3Bf266b5feC290 |
| BOA v1.0.1 Uniswap v4 Seed Module | 0xCbf8a774236018dA0cb6656314a95E0db4787750 |
| BOA v1.0.1 Native Token Deployer | 0x7D9E661592F68e5136823C422Fc673f661a0927B |
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 contract | Address |
|---|---|
| Older factory | 0x4D9639AB37a9cA00E80B4Aca198aC649d02995c4 |
| Older router | 0x856255bC5D79AdA826C0B187078bD64bb4416795 |
| Older marketplace | 0x07AAEEa34a6Dfdd0D2A527bAa7d992Bb6504a40D |
| PixelCats v0.8 proto-BOA | 0xD7800C338228a6eeb37cF74133732Fb6aE05915F |
| ClankerCats renderer | 0x2fE5bf2aB284bc71B261Ea6d32aaadfcA987Eeb8 |
| ClankerCats ERC-721 | 0xbE76Ce3cE0966fedA606fCF70884dae8FBaa7FCF |
| CLKCAT | 0x84a5637CcAC19250156e582c5bF7C01Eee151b07 |