Docs menu

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 safeTransferFrom behave 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. compose merges several Shapes into one survivor, decompose reverses the most recent compose exactly, and split breaks 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. tokenURI returns 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 toRead
Call the contract in ten minutesQuickstart
Understand denominations, seeds, origins and formationsCore concepts
Mint from a contract or scriptMinting
Combine or break ShapesComposing, Decomposing, Splitting
Read a Shape's state and geometryReading state, Geometry and rendering
Hold Shapes inside a contractBuilding on Shapes
Index the protocolEvents, Indexer
Look up an address or an interface idDeployments, Interfaces

Addresses

NetworkShapes
Ethereum mainnet0x6fe9193276bf7abcbee44ab7afd717d637d6faf0
Sepolia0x6c2f9c00f44fbbf141dd166979903004b80d5f99

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.