Skip to main content

Update NFTs

In order to update an NFT using Hub, the following criteria must be met:

  • The NFT was minted from a Collection on Hub
  • The NFT must be on Solana
  • The NFT is uncompressed

The following properties of an NFT that satisfies the above criteria can be updated:

  • Name
  • Symbol
  • Description
  • Image
  • Attributes (add/remove/update)
  • Seller fee basis points
  • Creator(s)

Update an NFT​

Update support is available both through the HUB API and the Hub Console as well. You can interact with our API at https://api.holaplex.com/ using an access token from your Hub organization.

mutation UpdateMint($input:UpdateMintInput!) {
updateMint(input:$input) {
collectionMint {
id
address
owner
}
}
}

Variables:

{
"input":{
"id":"<MINT_ID>",
"sellerFeeBasisPoints":1,
"creators":[
{
"address": "<CREATOR_WALLET_ADDRESS>",
"share": 100,
"verified": false
}
],
"metadataJson": {
"name": "Updated token name",
"symbol": "UPDATEDSYMBOL",
"description": "Updated token image",
"image": "<LINK_TO_IMAGE>",
"attributes": []
}
}
}

Note the creator field verified can only be set to true when the creator is the treasury wallet. Otherwise, the creator input must have "verified": false.

You can view your updated token on Hub Console, on your project's Collections tab. The Type is "Open" for any collections created using the createCollection mutation.

Note that a collection is also created for each drop in your project - these collections that correspond to a drop have Type "Drop" and can not be updated using the updateMint mutation.

How to find a mint_id​

Query the mints in your collection:

query GetCollectionMints($collection: UUID!) {
collection(id: $collection) {
mints {
id
creationStatus
owner
createdAt
compressed
metadataJson {
name
}
}
}
}

Variables:

{
"collection": "<COLLECTION_ID>"
}

Response:

{
"data": {
"collection": {
"mints": [
{
"id": "<MINT_ID>",
"creationStatus": "<CREATION_STATUS>",
"owner": "<CURRENT_OWNER>",
"createdAt": "<CREATED_AT>",
"compressed": <TRUE_OR_FALSE>,
"metadataJson": {
"name": "<TOKEN_NAME>"
}
},
{
"id": "<MINT_ID>",
"creationStatus": "<CREATION_STATUS>",
"owner": "<CURRENT_OWNER>",
"createdAt": "<CREATED_AT>",
"compressed": <TRUE_OR_FALSE>,
"metadataJson": {
"name": "<TOKEN_NAME>"
}
}
]
}
}
}

View update status and update history​

To view all updates made to an NFT by Hub, query updateHistory on the mintId:

query GetUpdateHistory($mint: UUID!) {
mint(id: $mint) {
id
updateHistories {
id
txnSignature
status
creditDeductionId
createdBy
createdAt
}
}
}

Variables:

{
"mint": "<MINT_ID>"
}

Sample response:

{
"data": {
"mint": {
"id": "bebd1d58-21fa-4662-bced-e75d65db52b5",
"updateHistories": [
{
"id": "84aca0ca-6996-468f-9a43-dfd08a545258",
"txnSignature": "jcJ3ECbGZk4NwxqZxnU5EzysWyaiRyvHkEkKppCErVrHHkBBnoA5WiRnKEc6eoZSP6wEhgcet7MJErHVR2GWMPk",
"status": "CREATED",
"creditDeductionId": "0000018a-053d-b9f9-d6d2-ddd021cb5276",
"createdBy": "f18fd233-f02d-4bcb-b5a1-257dd5fff4fb",
"createdAt": "2023-08-17T20:44:07.533964"
},
{
"id": "9b5fe9c4-0751-4af1-bae5-0c6f61ef7a0c",
"txnSignature": "ayWUQY2D3Sc2Kd4obFnq1Sm92STrPJPBku4X5wQ9o6PjuUq4a7o5Y4XUt22jX9fu8rKrt93bP34rN4mhTqhxC52",
"status": "CREATED",
"creditDeductionId": "0000018a-053c-603c-368c-447a9aa4d9d2",
"createdBy": "f18fd233-f02d-4bcb-b5a1-257dd5fff4fb",
"createdAt": "2023-08-17T20:42:39.308182"
}
]
}
}
}

Retry a failed update​

If the status of your update is FAILED, you can retry the update using the revisionId. The revisionId can be found in the id field of updateHistories (above).

mutation RetryUpdateMint($input: RetryUpdateMintInput!) {
retryUpdateMint(input: $input) {
status
}
}

Variables:

{
"input": {
"revisionId":"<REVISION_ID>"
}
}

Sample response:

{
"data": {
"retryUpdateMint": {
"status": "PENDING"
}
}
}

Follow along​

Demo video coming soon!