Zecrey
Search
⌃K

9. Asset Transfers

For various reasons, users may wish to transfer their assets from one wallet to another, for example, to send assets as gifts.

Initialize SDK

  • You need to initialize the SDK in order to use it.

Create transfer

  • All NFT transactions will be confirmed by Zecrey. Zecrey will ensure that it is submitted to L1 once the transaction is confirmed.
    • Parameters needed:
      Parameter
      Parameter usage and meaning
      Required vs Optional
      accountName
      The account name used to initialize the client
      ✅
      seed
      The user's L2 seed used to initialize the client
      ✅
      toAccountName
      The receiver's account name
      ✅
📚SDK REFERENCE
Golang
Javascript
Example
  • TransferNft allows users to change the owner of NFT. However, the creator of the NFT will never change. Each time an NFT is transferred, the creator will receive a royalty, which is calculated by the NFT's TreasuryRate set by its creator.
  • Alice transfers to Bob the NFT with NftId = 6
    1. 1.
      Initialize the client
    2. 2.
      Transfer the NFT to Bob
package main
​
import (
"fmt"
"github.com/Zecrey-Labs/zecrey-marketplace-go-sdk/sdk"
)
​
​
func main() {
var NftId int64 = 6
accountName := "Alice"
seed := "0x6a1a320d14790f2d9aa9a37769f4833d583a3f7f974fd452a3990aeb0e7a6052"
toAccountName := "Bob"
c, err := sdk.NewClient(accountName, seed)
if err != nil { panic(err) }
result, err := c.TransferNft(NftId, toAccountName)
if err != nil { panic(err) }
data, _ := json.Marshal(result)
fmt.Println("TransferNft:", string(data))
}
Example result
TransferNft: {"success":true}
Example
  • TransferNft allows users to change the owner of NFT. However, the creator of the NFT will never change. Each time an NFT is transferred, the creator will receive a royalty, which is calculated by the NFT's TreasuryRate set by its creator.
  • Alice transfers to Bob the NFT with NftId = 6
    1. 1.
      Initialize the client
    2. 2.
      Transfer the NFT to Bob
With the private key:
import { Client } from "@zecrey/zecrey-legend-js-sdk";
​
const account_name = "Alice.zec";
const seed = "ee823a72698fd05c70fbdf36ba2ea467d33cf628c94ef030383efcb39581e43f";
​
const client = new Client(account_name, seed);
await client.initialize();
​
const nft_id = 6;
const to_account_name = "Bob.zec";
const res = await client.transferNft(nft_id, to_account_name);
​
console.log("success", res);
With the wallet:
import { SDK } from "@zecrey/zecrey-legend-js-sdk";
​
const sdk = new SDK();
await sdk.initial();
​
const account_name = "Alice.zec"; // sender's account name
const account_index = 14; // sender's account index
const nft_id = 6;
const to_account_name = "Bob.zec";
const res = await sdk.transferNft(account_name, account_index, nft_id, to_account_name);
​
console.log("success", res);
Example result
success: true
​