Skip to content

NFTs

Iroha NFT-ը եզակի գրասենյակային օբյեկտ է, որը ունի մեկ սեփականատեր: Օգտագործեք NFTs, երբ արձանագրությունը պահանջում է իր ինքնությունը, մեթադատները, կյանքի շրջանի իրադարձությունները եւ տիրապետության փոխանցման սեմանտիկան, բայց չի պահանջում թվային հավասարակշռություն:

Ի տարբերություն թվային ակտիվի, NFT-ը չունի ճշգրտություն, mintability կամ հաշվեկվարկային քանակություններ: NFT-ը գոյություն ունի որպես մեկ գրանցված օբյեկտ, եւ սեփականությունը հետեւում է անմիջապես այդ օբյექტին:

Կազմակերպություն

Գրանցված Nft պարունակում է:

  • id: մի NftId
  • content: մետադատա, որը նկարագրում է NFT
  • owned_by: հաշիվը, որը պատկանում է NFT:

content դաշտը Metadata քարտեզ է: Պահպանեք այն համապարփակ. այնտեղ պահեք նկարագրական դաշտերը, կայուն հղումները, շիշները, URIs կամ SoraFS ուղիները: Խանրի՛ք մեծ փաստաթղթեր, լրատվամիջոցներ կամ բարձր քրոնային հավելվածների վիճակը անջատված եւ պահեք միայն ստուգելի հղում NFT:

Փորձեք այն Taira

Ստուգեք, թե արդյոք հանրային Taira փորձարկման ցանցում ներկայումս NFT գրանցումներ կան.

bash
curl -fsS 'https://taira.sora.org/v1/nfts?limit=5' \
  | jq '{total, nft_ids: [.items[].id]}'

Փորձեք OpenAPI կենդանի փաստաթուղթը NFT երթուղիների համար, որոնք բաց են թողնում հանգույցը.

bash
curl -fsS https://taira.sora.org/openapi.json \
  | jq -r '.paths | keys[] | select(startswith("/v1/nfts") or startswith("/v1/explorer/nfts"))'

Չոր items շարքը հանրային փորձարկման ցանցում վավեր պատասխան է: Դա նշանակում է, որ ընթացիկ էջում չկա NFTs, ոչ թե այն, որ NFT հրահանգները հասանելի չեն.

NFT IDs

NftId օգտագործում է հետեւյալ տեքստային ձեւը.

text
name$domain
name$domain.dataspace

Օրինակ, badge$docs.universal բացահայտում է badge NFT docs.universal տիրույթում: Եթե տվյալների տարածքը բացակայում է, ընթացիկ զննարկիչը օգտագործում է universal տվյալների տարածությունը, այնպես որ badge$docs լուծվում է որպես badge$docs.universal.

Օգտագործեք կայուն անուններ NFT IDs. ID-ը օբյեկտային նույնականությունն է, որն օգտագործվում է հրահանգների, հարցումների, թույլտվությունների, իրադարձությունների ֆիլտրերի եւ հավելվածի հղումների համար:

Կյանքի ցիկլ

NFT կյանքի շրջանակի գործողությունների օգտագործումը Iroha Հատուկ հրահանգներ.

Փորձեք տեղական

Այս օրինակները ենթադրում են, որ դուք գործարկել եք տեղական ցանց եւ ունեք ստեղծված հաճախորդի կարգավորումը CLI ուղեցույցից:

bash
export IROHA_CONFIG=./localnet/client.toml
export NFT_DOMAIN=wonderland.universal
export NFT_ID='badge_intro$wonderland.universal'

Ստեղծված տեղական ցանցը արդեն ստեղծում է wonderland.universal եւ իր SNS վարձակալության պայմանագիրը: Օգտագործելու համար այլ տիրույթ, նախ ստեղծեք այն հայտարարագրային app alias setup plan եւ app alias setup apply աշխատանքային հոսքի միջոցով, որոնք նկարագրվում են Տիրույթներում:

Գրանցել NFT: Գրանցումը կարդում է սկզբնական բովանդակությունը JSON ստանդարտ մուտքից.

bash
printf '{"kind":"badge","level":"intro","issuer":"docs"}\n' |
  cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft register --id "$NFT_ID"

Պարզապես ստուգեք NFT եւ այնուհետեւ ամբողջական գրառումներով բոլոր NFTs ցուցակները:

bash
cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft get --id "$NFT_ID"

cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft list all --verbose

Մետադատա բանալին ավելացրեք եւ կրկին կարդացեք NFT:

bash
printf '{"color":"blue","rarity":"tutorial"}\n' |
  cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft meta set --id "$NFT_ID" --key traits

cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft get --id "$NFT_ID"

Հեռացրեք մետադատա բանալին.

bash
cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft meta remove --id "$NFT_ID" --key traits

Ընտրական կերպով փոխանցել NFT. Օգտագործել ledger nft get կարդալ ներկայիս սեփականատերը owned_by, եւ օգտագործումը ledger account list all նպատակային հաշիվ գտնելու համար ID.

bash
cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger account list all

export CURRENT_OWNER='<account-id-from-owned_by>'
export NEW_OWNER='<destination-account-id>'

cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft transfer --id "$NFT_ID" --from "$CURRENT_OWNER" --to "$NEW_OWNER"

Հեռացրեք NFT օրինակը անցնելուց հետո: Եթե այն փոխանցել եք, կամ վերափոխեք այն կամ ներկայիս սեփականատիրոջ հաշիվի կարգավորմամբ ուղարկեք չկանխատեսելու հրամանը.

bash
cargo run --bin iroha -- --config "$IROHA_CONFIG" \
  ledger nft unregister --id "$NFT_ID"

Հարցեր եւ իրադարձություններ

Օգտագործեք FindNfts, որպեսզի ցուցակում ներկայացնեք NFTs եւ FindNftsByAccountId, որպեսզի ցուցակագրեք հաշիվի սեփականությամբ գտնվող NFTs:

NFT գրանցման, ջնջման, փոխանցման եւ մետադատա տվյալների թարմացումները արտանետում են NFT տվյալների իրադարձություններ: Օգտագործեք Nft տվյալների իրադրության ֆիլտրը, երբ բաժանորդագրվում եք ledger- ի փոփոխություններին կամ կառուցում եք գործարկիչներ, որոնք արձագանքում են NFT կյանքի շրջանի իրադարձությունների վրա:

թույլտվություններ

Սովորական թույլտվության մակերեսը ներառում է NFT-ի հատուկ տոքեր.

  • CanRegisterNft
  • CanUnregisterNft
  • CanTransferNft
  • CanModifyNftMetadata

Թույլտվությունների ստուգումները իրականացվում են ակտիվ վավերացնողի կողմից, այնպես որ ցանցը կարող է կատարելագործողին թարմացնելով թույլտվությունը հարմարեցնել: Նայեք Թույլտվության տոքերները ՝ ներկայիս նախնական տոքերների ցուցակի համար:

Ընտրում NFTs

Օգտագործեք NFT տվյալների համար, որտեղ առանձնահատկությունն ու սեփականությունը կարեւոր են.

  • վկայականներ, նշաններ, արտոնագրեր եւ վավերացություններ
  • անդամակցության կամ մուտքի գրառումներ
  • Անձնագրային կամ հաշիվի սեփականությամբ գրանցված դիմումների գրառումներ
  • արտահոսքային լրատվամիջոցների, փաստաթղթերի կամ մանիֆեստների հղումներ

Օգտագործեք թվային ակտիվ ֆունգիբալ հավասարակշռման համար եւ օգտագործեք պարզ մետադատա, երբ տվյալները միայն առկա գրքի օբյեկտի համապարփակ հատկանիշ են:

Նայեք նաեւ.