Moralis Rarible Plugin¶
This plugin has been developed by the Moralis team.
This plugin enables interaction with Rarible, allowing anyone to lazy-mint an NFT and sell it.
Supported chains¶
This plugins works with 2 different blockchains:
- Ethereum Mainnet (‘eth’)
- Ethereum Rinkeby (‘rinkeby’)
Supported tokens¶
- ERC721
- ERC1155
SDK¶
Import the Moralis SDK in your project.
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
<script src="https://npmcdn.com/moralis@latest/dist/moralis.js"></script>
Lazy mint¶
You can lazy mint a token by calling the lazyMint endpoint. This endpoint returns an object that contains the tokenId and tokenAddress of the lazy minted token.
await Moralis.Plugins.rarible.lazyMint({
chain: 'rinkeby',
userAddress: '0x7f64041298CC2C045FE5eb0e897ab7b5D4BdB4F3',
tokenType: 'ERC1155',
tokenUri: '/ipfs/QmWLsBu6nS4ovaHbGAXprD1qEssJu4r5taQfB74sCG51tp',
supply: 100,
royaltiesAmount: 5, // 0.05% royalty. Optional
})
You can also lazy mint a token and sell immediately. Below we are goin to lazy mint a token and create a sell order for it. In this example, we are selling 3 out of the 100 tokens created for 1 ETH (10 ** 18) each.
await Moralis.Plugins.rarible.lazyMint({
chain: 'rinkeby',
userAddress: '0x7f64041298CC2C045FE5eb0e897ab7b5D4BdB4F3',
tokenType: 'ERC1155',
tokenUri: '/ipfs/QmWLsBu6nS4ovaHbGAXprD1qEssJu4r5taQfB74sCG51tp',
supply: 100,
royaltiesAmount: 5, // 0.05% royalty. Optional
list: true, // Only if lazy listing
listTokenAmount: 3, // Only if lazy listing
listTokenValue: 10 ** 18, // Only if lazy listing
listAssetClass: 'ETH', // only if lazy listing || optional
})
Sell order¶
You can create a sell order for a lazy minted token by calling the createSellOrder endpoint. In this example, we are selling 4 tokens created for 1 ETH (10 ** 18) each.
await Moralis.Plugins.rarible.createSellOrder({
chain: 'rinkeby',
userAddress: '0xE78dC206875373B351EEF2D182025bb9a64d67B3',
makeTokenId: '104734732573670734795292663651146618103387426131809974624560761860320187646009',
makeTokenAddress: '0x1AF7A7555263F275433c6Bb0b8FdCD231F89B1D7',
makeAssetClass: 'ERC1155',
makeValue: '4',
takeAssetClass: 'ETH',
takeValue: 10 ** 18,
});
ERC20¶
You can sell a lazy minted token for ERC20 instead of ETH. Make sure to specify the following parameters:
takeAssetClass: 'ERC20',
takeTokenAddress: '0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea', // DAI
Example:
await Moralis.Plugins.rarible.createSellOrder({
chain: 'rinkeby',
userAddress: '0xE78dC206875373B351EEF2D182025bb9a64d67B3',
makeTokenId: '104734732573670734795292663651146618103387426131809974624560761860320187646009',
makeTokenAddress: '0x1AF7A7555263F275433c6Bb0b8FdCD231F89B1D7',
makeAssetClass: 'ERC1155',
makeValue: '4',
takeAssetClass: 'ERC20',
takeTokenAddress: '0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea', // DAI
takeValue: 10 ** 18,
});