The Meta API
The Meta API is used to mint NFTs or assets. The API requires an API key and has an endpoint of
Instamint clients mint and manage NFTs. Requests to mint via Meta by clients are asynchronous and operate like jobs. When a request to mint an asset is made, a new unique asset identifier is returned and the minting status of that asset is tracked. The client is able to pass in a arbitrary identifier that is then returned back on subsequent status checks, providing the client the ability to correlate the asset with their internal systems.
An asset is associated with four parties - Partner, Issuer or Creator, Owner and Custodian. Each role is filled by one or more Parties, where each Party has a unique identifier assigned by Instamint. Clients register parties by submitting a string name, and optionally, a wallet address. The Partner role is usually the Instamint client making the API call. The issuer or creator is the party that originates the asset, say a bank or artist, the owner is the current owner of the asset, usually the issuer or creator initially and the custodian is Instamint by default.
Thus, Meta has API endpoints that handle the creation of parties and their association with NFTs.

Party Management

Ops Charge
Creates new parties and returns an identifier
Lookup a party by name and retrieve
Get current USD & USDC balance
Create a new party with new Algorand, Ethereum address and Stripe ID
Returns party information about the caller

Asset Management

Ops charge
Request an asset be minted, see JSON payload below
Get status of an asset to determine if it has been minted or not
Get list of all assets I own
Transfer ownership of asset from one Party to another


The endpoint to mint an asset is /meta/v1/asset/mint. A JSON POST request includes the following parameters that can be supplied.
Chain to mint to, currently: ethereum-mainnet
algorand-testnet alogrand-mainnet (coming soon)
Causes a contract to be deployed and minted to, currently: erc721, erc1155 and arc3. If contractType is used then contract should not.
The type of asset, either pre-defined or designed by Designer
Moniker of an existing smart contract, i.e. INSTA1, INSTA2. If contract is used then contractType should not.
Lazy mint or on-chain
A hierarchy of parameters, schemas are pre-built or designed in Designer
Where to store metadata, currently: ipfs (arweave coming soon)
Description of asset, not publicly displayed
A note added to the asset’s notebook
Fractionalization of assets (in 1, 10, 100, 1000 only)
Basis of royalties to go to issuer
Parameters specific to selected contract or contractType
Parameters specific to selected chain
An arbitrary string to help cross-reference an asset with the callers data, i.e. an internal invoice number
Instamint is multichain, meaning that tokens can be minted across a number of blockchains. Additional chains are planned to be supported and come online over the coming quarters.
Support Level
ERC721, ERC1155
ERC721, ERC1155
ARC3, ARC18, ARC69
When an asset is minted, any file assets, like an image or video, is uploaded to IPFS. The IPFS URLs of the digital assets are then aggregated into as single JSON metadata file and also uploaded to IPFS and is regarded as the token metadata. The metadata is cached by Instamint and accessible via the token URI.

Instamint Asset Hash ID

All assets, regardless of what chain they are minted on or whether the mint was successful or not are assigned an Instamint Asset Hash ID (or just asset hash). The hash is generated by concatenating two v4 UUIDs and randomly mixing the cases of the UUIDs. The asset hash serves as a standard way to reference tokens or across chains. For Ethereum tokens, an asset hash maps to a token ID and for Algorand chains, an asset hash maps to an ASA.

Cross Referencing

Much of the enterprise world is an amalgamation of diverse and disparate data systems. Often there is a need to correlate data from one system with another system. Instamint allows clients to correlate assets with arbitrary identifiers that are returned to them when assets are queried, making correlation with internal systems easier

Smart Contracts

Instamint manages a growing library of token smart contracts. For example, an ERC1155 exists on Ethereum mainnet at address 0xa993749323E2A8B18f7D4Ef541D6A1a89Cd92888 and Instamint uses this to mint NFTs. Depending on client needs, additional ERC1155 contracts may be required and created. To manage this, each contract is assigned a short name. In the provided contract address example, the short name for this contract is INSTA2. INSTA1 refers to an ERC721 and INSTA3 does not currently exist.
In the future, clients will be able to not only mint NFTs but mint smart contracts and create self-custody these smart contracts. For example, an artist may wish to have their own ERC721 smart contract and Instamint will provide the ability to do that with an API. As such, each instance of a smart contract will be given a short name to track. This is simplifies the need to retrieve metadata via a single URI scheme. The URI scheme for Instamint across any smart contract on any chain is:
Scheme: /v1/meta/v1/contract/CONTRACT_SHORT_NAME/token/TOKEN_ID
In the above scheme, CONTRACT_SHORT_NAME would be replaced by INSTA1, INSTA2 or any other smart contract minted through Instamint.