Arcana Typescript Bindings
Please also see the contract documentation.
Installation
yarn add fidrop-arcana
Instantiation
The contracts can be initialized using the initializeInstruction
function (see example usage in cli.ts
).
Configuration
This step currently mainly involves setting up the sales groups correctly. In cli.ts
the approach taken is saving everything to a local configuration file and then finally committing everything to the chain - see "commit-groups" in cli.ts
.
However, this can be done differently. The ArcanaClient
(see Arcana.client.ts) class has methods available to add, delete and update groups.
Where are the NFTs stored?
This is how it works:
- When you instantiate the contract, you define how large the collection is e.g. 100, or 1000 or something else
- You also define the collection base URI e.g. "https://example.com"
- During minting, a user randomly gets assigned a number between 1 and the n (where n is the total number of tokens). For example, for a collection of 2500 NFTs, during minting a user can randomly buy a "token id" ranging from 1 to 2500
- During minting, and after the user gets a token ID, the sales contract calls the collection contract to mint a new NFT. The new NFT's token URI will be based on the base token URI set earlier. For example if the user got token id 27, then their token URI will be "https://example.com/27"
- The NFT collection owners must ensure that the URI points to a valid NFT based on cw721 standard - this is identical to ERC-721.
- Royalties are supported in accordance with ERC-2981
Minting
Uses will mint by calling the mint
function from ArcanaClient
. See 'mint' example in cli.ts
. ArcanaClient
contains other mint related functions (mintTo and mintFor) but these are admin only.
The collection contract
CollectionClient
from Collection.client.ts
can be used to interact directly with the NFT collection contract. Do note that you cannot mint directly with this contract and have to go through the arcana sales contract. However, you can use CollectionClient
to query for data regarding NFTs.
Sei v2 Mainnet (pacific-1)
All contracts have been deployed to the Sei v2 Mainnet.
Codes:
- arcana: 4830
- collection: 4828
- open edition minter: 4833
Instantiated contract addresses:
-
arcana: sei14dl6m7v9uxm346670xxpvjp3yktr4lx48f83m4w9xey46ldede3sj0f9vt
-
associated collection: sei1v0q93z2pa56uq9jl0t9099tdxrnssxqc64j2hkp55f79ymh2dn9q6c6rk6
-
open edition minter: sei10fjxujr6mumtr53483u7cmec8pvxc782qx2cn8uay68ms22f4puqyg6pfd
-
associated collection: sei14kuah2lddc27c5uu9vc6vkf4xd2p3l2wa72ahplhevfghsp8zz0sskn6aj
Sei v2 Devnet (arctic-1)
RPC URL: https://rpc.arctic-1.seinetwork.io
All contracts have been deployed to the Sei v2 Devnet.
Codes:
- arcana: 73
- collection: 74
- open edition minter: 102
Instantiated contract addresses:
-
arcana: sei1p73558u0g52e96tzna8uhaea0v3mtda7whxqaxq6due44kgvu2aq7r3hh5
-
associated collection: sei1e4r7ezdgsa5vnx5fdrx47kvzr6k6fsk4qtc0frxwnclvj0kzhywsy3nr4f
-
open edition minter: sei1ashuctzszwj5ju343v9j9scllck27l7fe92vn63t7zjs3uvla03sl0vlu0
-
associated collection: sei1devk2dv0hkmaj0q0yhc002knazgejswjcve4mr5p7vk4awvzxzksrpnucr
Testnet (atlantic-2)
RPC URL: https://rpc.atlantic-2.seinetwork.io
All contracts have been deployed to the atlantic2 Sei testnet.
Codes:
- arcana: 7750
- collection: 7751
- open edition minter: 8258
Instantiated contract addresses:
-
arcana: sei1t0h4j08fheknlrhk9m5r8m74wnktrn5evcrsknxrtzlqhuvzfmwqyl2pev
-
associated collection: sei14atgn4fjvwljuxfz50r0qxcawpjrrmmwjqe4lk8ylzk7vr675k7sya68tp
-
open edition minter: n/a
-
associated collection: n/a