- Publish coin's nullifier to avoid double-spending.
- Commit to coin's value
- Commit to tokenId
- Add coin to merkle tree, and set it's root it as instance.
- Set spendHook as instance
- Calculate , and set it as instance.
|x coordinate of value point commitment|
|y coordinate of value point commitment|
|[commitment](../crypto/commitment.md] of tokenId as field element|
|root||root of coin commitments merkle tree|
|data||data read during execution of burn spendHook contract|
|spendHook||burn related contract|
|signature public x coordinate|
|signature public y coordinate|
|blinding term for burn value commitment|
|blinding term for tokenId commitment|
|sn||serial number for burn coin|
|spendHook||contract related contract|
|data||data read during spendHook execution|
|blinding term for data commitment|
|sk||coin private key|
|pos||coin commitment leaf position in the merkle tree|
|path||coin commitment path in the merkle tree|
|signature secret key|