Operations

Deploy BRC-721

Deploy NFT with an external base URI to provide metadata for each token:

{
    "p": "brc-721",
    "op": "deploy",
    "tick": "ordinals",
    "max": "10000",
    "buri": "https://ipfs.io/abc/"
}
  • For token ID 1, the metadata is located at https://ipfs.io/abc/1

Deploy NFT with onchain metadata:

{
    "p": "brc-721",
    "op": "deploy",
    "tick": "ordinals",
    "max": "10000",
    "meta": {
        "name": "Ordinals",
        "description": "Bring NFT to Bitcoin", 
        "image": "https://storage.googleapis.com/opensea-prod.appspot.com/puffs/3.png",
        "attributes": [
            {
                "trait_type": "trait1", 
                "value": "value1"
            }, ... ]
    }
}
  • All tokens of the collections will share the same metadata.

KeyRequired?Description

p

Yes

Protocol: Helps other systems identify and process BRC-721 events

op

Yes

Operation: Type of event (deploy, mint, update)

tick

Yes

Ticker: identifier of the BRC-721, 4 to 8 letters, case insensive

buri

No

BaseURI URI for the BRC-721, access {buri}{token_id} for the metadata of a token

meta

No

The metadata of the collection

max

Yes

Max supply: set max supply of the BRC-721

  • Either buri or meta should be stated, meta take precedence

Metadata

KeyRequired?Description

name

Yes

Identifies the asset to which this NFT represents

description

Yes

Describes the asset to which this NFT represents

image

Yes

A URI pointing to a resource with mime type image, or self-decribed mime data, for example: data:image/svg+xml;base64,<base64_encoded_image_bytes>

attributes

No

Token attributes

Mint BRC-721

{
    "p": "brc-721",
    "op": "mint",
    "tick": "ordinals"
}
KeyRequired?Description

p

Yes

Protocol: Helps other systems identify and process BRC-721 events

op

Yes

Operation: Type of event (deploy, mint, update)

tick

Yes

Ticker: identifier of the BRC-721, 4 to 8 letters, case insensive

  • Token ID is generated from 1 to max according to the order of inscription IDs.

Transfer BRC-721

It's simple to transfer an BRC-721 token, just send the inscription minted above to the receiver. There is no need to mint a transfer inscription before sending like BRC-20.

Update BRC-721

{
    "p": "brc-721",
    "op": "update",
    "tick": "ordinals",
    "buri": "https://ipfs.io/abc"
}
KeyRequired?Description

p

Yes

Protocol: Helps other systems identify and process BRC-721 events

op

Yes

Operation: Type of event (deploy, mint, update)

tick

Yes

Ticker: identifier of the BRC-721, 4 to 8 letters, case insensive

buri

No

BaseURI URI for the BRC-721, access {buri}{token_id} for the metadata of a token

  • Currently, only allowed to update buri

  • This operation should be only allowed for the deployer who hold the deploy inscription

State Changes

  • NFT Deployer

    • The address holding the deploy inscription is the deployer

    • The receiving address of the first deploy inscription minting becomes the deployer

    • If the deploy inscription is transferred to a new address, the new address becomes the deployer

    • The deployer can modify the buri

  • Token ID

    • Similar to ERC721, each token in a BRC-721 collection has a unique ID

    • Each mint operation's inscription generates a token with a token ID ranging from 1 to max (the total supply defined in the deploy inscription) in the order of inscription ID

    • Minting inscriptions beyond the total supply are invalid

  • Token Owner

    • The address holding the mint inscription is the owner of the token

    • When the mint inscription is transferred to a new address, the owner changes to the new address

  • Transfer

    • Transfer the NFT token using ord wallet send <ADDRESS> <INSCRIPTION ID>

Last updated