SEEDCHAIN is experimental software and these docs may get out of date quickly. Please join the Discord server for up to date information and support.

Contract overview

Seedchain implements the ERC1155 contract standard, with additional methods detailed in our contract API documentation.

Each Seedchain token represents a type of impact, like trees (token 100) or carbon offsets (token 101). Each token is:

  • Semi-fungible: each token is identical on-chain and has it's own supply
  • Soulbound: you cannot trade a Seedchain token.

By implementing ERC1155, Seedchain can achieve:

  • Less wallet spam. Platforms like OpenSea will stack ERC1155 tokens, which is important to encourage users to bulk mint impact.
  • Lower batch mint gas fees than with ERC721.
  • Easy to determine the detailed impact of a user using the balanceOfBatch() method.

Exceptions

Seedchain makes some notable changes to the ERC1155 standard.

Tokens are non-transferrable

This means impact is tied to the address that minted it, or the address it was airdropped to.

Removal of transfer safety check

ERC1155 contracts should check that a contract receiving tokens during a transfer is safe to receive ERC1155 tokens. This protection is designed to prevent tokens becoming locked to an address that has no way to release them.

We have removed this safety check because Seedchain tokens are non-transferrable, so all addresses are safe to receive them.