You can Create NFT Collection with Rarible Multichain Protocol in different blockchains.
Before start, install and configure Rarible SDK and required wallets.
Create collection
Use createCollection function:
import { createRaribleSdk } from "@rarible/sdk"
import type { BlockchainWallet } from "@rarible/sdk-wallet/src"
import type { CreateCollectionRequest } from "@rarible/sdk/src/types/nft/deploy/domain"
async function createCollection(wallet: BlockchainWallet, collectionRequest: CreateCollectionRequest) {
const sdk = createRaribleSdk(wallet, "dev")
const result = await sdk.nft.createCollection(collectionRequest)
await result.tx.wait()
return result.address
}Depending on blockchain type, in collectionRequest should pass the following parameters:
Ethereum
const ethereumRequest: CreateCollectionRequest = {
blockchain: Blockchain.ETHEREUM,
asset: {
assetType: "ERC721",
arguments: {
name: "name",
symbol: "RARI",
baseURI: "https://ipfs.rarible.com",
contractURI: "https://ipfs.rarible.com",
isUserToken: false,
},
},
}Tezos
const tezosRequest: CreateCollectionRequest = {
blockchain: Blockchain.TEZOS,
asset: {
assetType: "NFT",
arguments: {
name: "My NFT collection",
symbol: "MYNFT",
contractURI: "https://ipfs.io/ipfs/QmTKxwnqqxTxH4HE3UVM9yoJFZgbsZ8CuqqRFZCSWBF53m",
isUserToken: false,
},
},
}blockchain— blockchain type:ETHEREUMorTEZOSassetType— NFT collection type:ERC721orERC1155forETHEREUM,NFTorMTforTEZOSname— name of the collectionsymbol— symbol of the collectionbaseURI— prefix of the result of the tokenURI callcontractURI— URI meta of the entire collectionisUserToken— privat (true) or public (false) collection
Checking created collection
To check the created collection:
-
Use the
getCollectionByIdAPI method??? note "getCollectionById"
Returns collection by address. `https://api.rarible.org/v0.1/collections/{collection}` **Example request (staging)** ```shell curl --request GET 'https://api-staging.rarible.org/v0.1/collections/all?blockchains=ETHEREUM&size=3' ``` **Example response (status 200)** ```json { "total": 3, "continuation": "ETHEREUM:0x6ea0adbc173c7e8ca64c1ce881c1cfc161927876", "collections": [ { "id": "ETHEREUM:0x6ea0adbc173c7e8ca64c1ce881c1cfc161927876", "blockchain": "ETHEREUM", "type": "ERC721", "name": "CryptoKitties", "symbol": "CK", "features": [], "minters": [] }, { "id": "ETHEREUM:0xaf2584a8b198f5d0b360b95d92aec852f7902e52", "blockchain": "ETHEREUM", "type": "CRYPTO_PUNKS", "name": "CRYPTOPUNKS", "symbol": "(Ͼ)", "owner": "ETHEREUM:0xfb571f9da71d1ac33e069571bf5c67fadcff18e4", "features": [], "minters": [] }, { "id": "ETHEREUM:0xd0200fa0a9c94484c7152813313b122e31bed99d", "blockchain": "ETHEREUM", "type": "ERC721", "name": "CryptoKitties", "symbol": "CK", "features": [], "minters": [] } ] } ``` -
Or check Etherscan for Ethereum and Polygon, Flowscan for Flow, or tezblock for Tezos.
See more information about usage Protocol SDK on https://github.com/rarible/sdk
