See the canonical spec:
.TypeScriptimport { Client, Wallet } from 'xrpl'; async function mintNFToken(): Promise<void> { const client = new Client('wss://honeycluster.dev'); await client.connect(); const wallet = Wallet.fromSeed('s...'); const prepared = await client.autofill({ TransactionType: 'NFTokenMint', Account: wallet.address, NFTokenTaxon: 0, URI: '68747470733a2f2f6578616d706c652e636f6d2f6e66742f313233', Flags: 8, }); const signed = wallet.sign(prepared); const res = await client.submitAndWait(signed.tx_blob); console.log(res); await client.disconnect(); } mintNFToken().catch(console.error);
| Field | Type | Required | Description |
|---|---|---|---|
Account | String | Yes | The address of the account minting the NFToken |
NFTokenTaxon | Number | Yes | A number used to identify a class of NFTokens |
URI | String | No | URI that points to the data/artifact associated with the NFToken |
Flags | Number | No | Flags to enable/disable certain NFToken features |
TransferFee | Number | No | Percentage fee charged when the NFToken is transferred |
Issuer | String | No | The account that should be the issuer of the NFToken |
Flags:
8 (tfTransferable): NFToken can be transferred
1 (tfBurnable): NFToken can be burned
2 (tfOnlyXRP): NFToken can only be held by accounts with XRP
URI:
Must be hex-encoded
Example: "68747470733a2f2f6578616d706c652e636f6d2f6e66742f313233" = "https://example.com/nft/123"
Creates a unique, non-fungible token on the XRP Ledger
URI field contains metadata about the NFT (typically IPFS hash)
Flags control transferability and other properties
Always use autofill to set fees and sequence safely when using the XRPL client library