Merkle Proof Guide
The merkle root and proof is only necessary in traid-based order. For other order type, just leave out this.
Merkle Root Calculation Algorithm
Suppose a user filters out a set of tokenIds according to its traits, and the token id array is [12,10,7,8,9,11,13]. Then it needs to sort the token id array and build a binary tree:
hash1234(hash12,hash34)
/ \
hash12(hash1,hash2) hash34(hash3,hash4)
/ \ / \
hash1(7,8) hash2(9,10) hash3(11,12) hash4(13,13)
/ \ / \ / \ ||
7 8 9 10 11 12 13 MerkleRoot
The merkleRoot is hash1234(hash12,hash34) and here is value its 0x72da2598329de27c7d20ea24372ca2a4732aaac2d9386467373baa7874b870f6.
MerkleProof
Suppose the target leaf is 7, then the merkle proof is [8, hash2(9,10), hash34(hash3,hash4)]. Suppose the target leaf is 10, then the merkle proof is [9, hash1(7,8), hash34(hash3,hash4)].
Generate Merkle Proof And Root
This is the example JS code to calculate merkle root and merkle proof.
Metadata to IPFS
Write tokenIds to a text file and upload it to IPFS.
Convert IPFS hash to bytes32
Fill
merkleRoottomerkleData[0]andipfsHashtomerkleData[1]
This is the example JS code to convert the bese58 encoding ipfs hash to bytes32
Suppose tokenIds is [7,8,9,10,11,12,13], then the original ipfs hash is QmZHbCohMvg1Pcf6rbh21DBhkCb7qCkwb37QK8xf6HQP39, the bytes32 ipfs hash is 0xa2a7d9b6454df5a7f4809215f12cc347e9662a4cdcd69d83e8a0f2cf65e1ce4c.
Last updated