Shapes developer docs
Shapes is an ERC-721 whose every token holds an exact, fixed amount of ETH. These pages document the contract surface for developers who want to hold, move, combine, split, read or redeem Shapes from their own contracts, scripts and applications.
What a Shape is, for an integrator
- An ERC-721 token. Transfer, approve and
safeTransferFrombehave as in any OpenZeppelin ERC-721. Marketplaces, vaults and escrows that handle ERC-721s handle Shapes. - Exactly backed.
valueOf(tokenId)is the wei its current owner receives by redeeming it. The value is one of nine fixed denominations, from 0.01 ETH to 100 ETH. The contract holds the ETH and does nothing else with it. - Composable.
composemerges several Shapes into one survivor,decomposereverses the most recent compose exactly, andsplitbreaks one Shape into smaller ones. None of these move ETH or charge a fee. - Fully onchain. Artwork and metadata are generated by the contract from the token's seed and denomination.
tokenURIreturns a data URI. - No admin reach into value. No function pauses redemption, withdraws the reserve, changes a token's backing or seizes a token. The admin role configures presentation, two optional pointers and the mint fee within a cap. See Trust model.
Where to start
| You want to | Read |
|---|---|
| Call the contract in ten minutes | Quickstart |
| Understand denominations, seeds, origins and formations | Core concepts |
| Mint from a contract or script | Minting |
| Combine or break Shapes | Composing, Decomposing, Splitting |
| Read a Shape's state and geometry | Reading state, Geometry and rendering |
| Hold Shapes inside a contract | Building on Shapes |
| Index the protocol | Events, Indexer |
| Look up an address or an interface id | Deployments, Interfaces |
Addresses
| Network | Shapes |
|---|---|
| Ethereum mainnet | 0x6fe9193276bf7abcbee44ab7afd717d637d6faf0 |
| Sepolia | 0x6c2f9c00f44fbbf141dd166979903004b80d5f99 |
The full record for each network, including the renderer, the collection, the auction house, the linked libraries and the deployment block, is on the Deployments page. The Contracts page on this site lists every function, event and error of every deployed contract with its NatSpec, and can call the read functions against the live chain.
Source
The contracts are MIT licensed. Source, tests, specifications and the deployment records live at github.com/ripe0x/shapes. The ABI is in deployments/1.json and in the Foundry artifacts.