Properties

Be sure to see Reading of NFD metadatafor descriptions of how to read the metadata. This merely lists the explicit properties and some conventions

Internal Properties

All of these properties will be prefixed with 'i.' - so a field listed as asaid is really stored as i.asaid

ONLY the Contract itself can alter these properties.

Field
Description

i.asaid

ASA ID (8-byte BE). The id of the NFT created by the NFD and set into the owners account. Upon claiming, or purchase, the NFT is clawed by the NFD from seller to buyer.

i.name

The name of the NFD (may not be full portion - details in the future)

i.category

A category as set by NFDomains at mint time. Current possible values are: curated, premium, and common.

i.commission1Agent.a

If set, account that will receive a commission upon sale. If commission2Agent is set, then after sale, commission2Agent replaces commission1Agent (and percentage) and is cleared. This allows primary and secondary sales to have different commission agents. (32-byte PK)

i.commisson1

commission % (in tenths). 10 would be 1 %. (8-byte BE)

i.mintingKickoffCreator.a

If set, this account has placed Algo into the NFD's account in advance to be used in later claiming. Upon the NFD being purchased (initial claim only), then if the buyer is the same as the kickoff creator the amount needed to claim is their kickoff amount + the amount they're offering on the purchase. If the purchaser is not the same as the kickoff creator, then the kickofCreator account is refunded their kickoffAmount (32-byte PK)

i.mintingKickoffAmount

The amount the KickoffCreator account placed into the NFD. (8-byte BE)

i.highestSoldAmt

Highest sale price for this NFD in its lifetime (in microAlgos) (8-byte BE)

i.owner.a

The 32-byte PK of the Algorand account that owns this NFD

i.parentAppID

If this is a segment, this will be set to the App ID of this NFD's root NFD. (8-byte BE)

i.sellamt

Only set if NFD is for sale. This is effectively a state unto itself. A for-sale NFD should NOT accept deposits. The sale price in microAlgos. (8-byte BE)

i.saleType

The sales method in which this NFD was originally minted - currently either auction, or buyItNow

i.seller.a

The 32-byte PK of the 'seller' of this NFD. This is the account paid upon any sale. At mint time, the seller is NFDomains and then upon claiming, the seller is always set to the new owner.

i.timeCreated

The on-chain 'last timestamp' [seconds since epoch] when the NFD was created via its app create/creation contract call (8-byte BE)

i.timeChanged

The on-chain 'last timestamp' for updates of the NFD - sales, metadata updates, etc. (8-byte BE)

i.timePurchased

Timestamp of most recent purchase (8-byte BE)

i.expirationTime

If present, indicates a renewal-based NFD with the value being set to the 8-byte BE timestamp (seconds unixtime) of expiration.

i.ver

The 'NFD contract' version. Set at creation time, and if upgraded (to version of new contract)

i.contractLocked

0 for unlocked, 1 for locked. Defaults to 0. If set to 1 by NFD owner, the contract of that NFD is completely blocked from being changed. Owner may later unlock, and upgrade on-demand if desired.

i.segmentLocked

0 for unlocked, Undefined or 1 for locked. Defaults to locked. If NOT set to 0 by NFD owner, the NFD root is locked and a segment of the root can't be minted

i.segmentPriceUsd

For unlocked segment, the price in USD cents to mint a segment off this unlocked root. 400 would be $4.00. (8-byte BE)

i.segmentCount

If a root, the number of segments that have been minted from this NFD. (8-byte BE)

i.vaultOptInLocked

"0" for unlocked, Undefined or "1" for locked. Defaults to UNLOCKED. Can also be set to a Itob(xx) (64-bit Big-Endian value) representing the timestamp at which the vault should 're-lock'. If < current timestamp, then vault is UNLOCKED. If > current timestamp, then vault is locked. This is useful for 'allow airdrops for... 1 hour' sort of requests. If locked, only the owner can send new assets into the vault

User-Defined Properties

User properties are arbitrary and can be set to anything by the user.

All of these properties will be prefixed by 'u.'.

Some properties will be treated specially by the NFDomains UI, but there are no explicit rules for them. Owners may cause problems with some integrations if the conventions aren't followed though.

Field
Description

u.name

User / Company name

u.bio

u.address

Company address, etc.

u.email

Email address that can optionally be set as a 'verified' email if user verifies their email address.

u.url

Url to redirect to via xxxx.algo.xyz domain, can also be ipfs://XXXXX link as well.

u.avatar

Url to avatar image (ipfs:// supported and preferred)

u.banner

Url to banner image

u.twitter

Twitter handle - preferably an intermediate field set prior to verification.

u.discord

intermediate field - preferably used to specify the discord user (snowflake) id as part of verification process.

u.telegram

intermediate field - preferably used to specify the telegram id as part of verification process

u.domain

DNS Zone name (ie: nf.domains) for possible verification.

u.website

Simple link to show on profile for viewers to click-through

u.caalgo

User-defined Algorand Addresses (C]rypto A]ddress Algo]rand), stored comma-delimited. Exposed as top-level unverifiedCaAlgo array in API.

u.ca.{token}

User Defined C]rypto A]ddress. Use token name for type. ie: ca.btc for Bitcoin deposit address. ca.eth for Ethereum, etc.

...

Verified Properties

All of these properties will be prefixed by 'v.'

ONLY NFDomains can currently set verified properties.

As decentralized services become available which can be trusted with these off-chain/on-chain services, NFDomains will strive to remove to remove this requirement and support these services being given the trust to set certain verified properties.

Field
Description

v.avatar

Link to verified avatar - typically ipfs:// link

v.avatarasaid

The ASA ID of the avatar. NFDomains will re-assert that this ASA is still owned by accounts related to the NFD and will clear the avatar fields if not.

v.banner

Link to verified banner - typically ipfs:// link

v.bannerasaid

The ASA ID of the banner. Re-asserted same as avatar.

v.caAlgo.0.as

See Reading of NFD metadatafor details. Contains packed 32-byte PKs of Algorand addresses which were verified by the owner as an address they can sign for.

v.domain

DNS Zone that was verified

v.twittter

Telegram @handle that was verified

v.discord

Discord snowflake ID that was verified

v.telegram

Telegram user id that was verified.

Last updated