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