Meta
The Meta API
The Meta API is used to mint NFTs or assets. The API requires an API key and has an endpoint of https://api.instamint.com/v1/meta
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
../party/create
Creates new parties and returns an identifier
../party/lookup
Lookup a party by name and retrieve
../party/balance
Get current USD & USDC balance
../party/create
Create a new party with new Algorand, Ethereum address and Stripe ID
../party/my
Returns party information about the caller
Asset Management
../asset/mint
Request an asset be minted, see JSON payload below
../asset/status
Get status of an asset to determine if it has been minted or not
../asset/my
Get list of all assets I own
../asset/transfer
Transfer ownership of asset from one Party to another
Minting
The endpoint to mint an asset is /meta/v1/asset/mint. A JSON POST request includes the following parameters that can be supplied.
chain
Chain to mint to, currently: ethereum-mainnet
ethereum-goerli
algorand-testnet alogrand-mainnet (coming soon)
contractType
Causes a contract to be deployed and minted to, currently: erc721, erc1155 and arc3. If contractType is used then contract should not.
assetType
The type of asset, either pre-defined or designed by Designer
contract
Moniker of an existing smart contract, i.e. INSTA1, INSTA2. If contract is used then contractType should not.
mintStrategy
Lazy mint or on-chain
asset
A hierarchy of parameters, schemas are pre-built or designed in Designer
store
Where to store metadata, currently: ipfs (arweave coming soon)
assetDescription
Description of asset, not publicly displayed
note
A note added to the asset’s notebook
fractionalization
Fractionalization of assets (in 1, 10, 100, 1000 only)
royaltiesBasisPoint
Basis of royalties to go to issuer
contractSpecific
Parameters specific to selected contract or contractType
chainSpecific
Parameters specific to selected chain
xref
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.
Ethereum
ERC721, ERC1155
Polygon
ERC721, ERC1155
Algorand
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.
Last updated