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:ETHEREUM
orTEZOS
assetType
— NFT collection type:ERC721
orERC1155
forETHEREUM
,NFT
orMT
forTEZOS
name
— 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
getCollectionById
API 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