Smart Contracts

Contracts and contract types

Contracts Library

Instamint maintains a library of smart contracts that serve different purposes. This includes ERC721 and ERC1155 contracts and variations of them. Each deployed smart contract is identified by a name ("moniker") and the name is identified during API calls. A moniker maps to an existing smart contract deployed on chain, and thus a smart contract address.

Moniker
Description
Location

INSTA1

Clean OpenZeppelin 4.4.1 ERC721

../ethereum/contracts/Instamint721.sol

INSTA2

Clean OpenZeppelin 4.4.1 ERC1155

../ethereum/contracts/Instamint1155.sol

All smart contracts can be found at https://github.com/instamint/smartcontracts

Smart contracts can be deployed or minted to. When deployed, a smart contract type is specified. For example, deploying a new ERC721 or ERC115 and assigning it a moniker. If minting to an existing smart contract, as is the case with an ERC721 or ERC1155, a moniker is used in lieu of a contract address.

Algorand ASAs

For Algorand ASA’s, a token and smart contract are identical and therefore specifying a contract type of ARC3 both deploys and mints the asset. By default, an ASA's unit name is INSTA. This will be overridable in the Q4 2022 release.

Contract Types Library

New contracts, above and beyond INSTA1 and INSTA2 can be deployed by specifying the contractTypeparameter to one of the following types.

Type
Description
Reference

erc721

Deploys the latest version of OpenZeppelin ERC721

erc1155

Deploys the latest version of OpenZeppelin ERC721

arc3

Deploys and mints an Algorand Asset

arc18

Deploys, mints and adds royalties to Algorand Asset

Last updated