cw721 0.6.0-alpha2

Definition and types for the CosmWasm-721 NFT interface
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Cw721ExecuteMsg",
  "anyOf": [
    {
      "description": "Transfer is a base message to move a token to another account without triggering actions",
      "type": "object",
      "required": [
        "transfer_nft"
      ],
      "properties": {
        "transfer_nft": {
          "type": "object",
          "required": [
            "recipient",
            "token_id"
          ],
          "properties": {
            "recipient": {
              "$ref": "#/definitions/HumanAddr"
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "description": "Send is a base message to transfer a token to a contract and trigger an action on the receiving contract.",
      "type": "object",
      "required": [
        "send_nft"
      ],
      "properties": {
        "send_nft": {
          "type": "object",
          "required": [
            "contract",
            "token_id"
          ],
          "properties": {
            "contract": {
              "$ref": "#/definitions/HumanAddr"
            },
            "msg": {
              "anyOf": [
                {
                  "$ref": "#/definitions/Binary"
                },
                {
                  "type": "null"
                }
              ]
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "description": "Allows operator to transfer / send the token from the owner's account. If expiration is set, then this allowance has a time/height limit",
      "type": "object",
      "required": [
        "approve"
      ],
      "properties": {
        "approve": {
          "type": "object",
          "required": [
            "spender",
            "token_id"
          ],
          "properties": {
            "expires": {
              "anyOf": [
                {
                  "$ref": "#/definitions/Expiration"
                },
                {
                  "type": "null"
                }
              ]
            },
            "spender": {
              "$ref": "#/definitions/HumanAddr"
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "description": "Remove previously granted Approval",
      "type": "object",
      "required": [
        "revoke"
      ],
      "properties": {
        "revoke": {
          "type": "object",
          "required": [
            "spender",
            "token_id"
          ],
          "properties": {
            "spender": {
              "$ref": "#/definitions/HumanAddr"
            },
            "token_id": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "description": "Allows operator to transfer / send any token from the owner's account. If expiration is set, then this allowance has a time/height limit",
      "type": "object",
      "required": [
        "approve_all"
      ],
      "properties": {
        "approve_all": {
          "type": "object",
          "required": [
            "operator"
          ],
          "properties": {
            "expires": {
              "anyOf": [
                {
                  "$ref": "#/definitions/Expiration"
                },
                {
                  "type": "null"
                }
              ]
            },
            "operator": {
              "$ref": "#/definitions/HumanAddr"
            }
          }
        }
      }
    },
    {
      "description": "Remove previously granted ApproveAll permission",
      "type": "object",
      "required": [
        "revoke_all"
      ],
      "properties": {
        "revoke_all": {
          "type": "object",
          "required": [
            "operator"
          ],
          "properties": {
            "operator": {
              "$ref": "#/definitions/HumanAddr"
            }
          }
        }
      }
    }
  ],
  "definitions": {
    "Binary": {
      "description": "Binary is a wrapper around Vec<u8> to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec<u8>",
      "type": "string"
    },
    "Expiration": {
      "description": "Expiration represents a point in time when some event happens. It can compare with a BlockInfo and will return is_expired() == true once the condition is hit (and for every block in the future)",
      "anyOf": [
        {
          "description": "AtHeight will expire when `env.block.height` >= height",
          "type": "object",
          "required": [
            "at_height"
          ],
          "properties": {
            "at_height": {
              "type": "integer",
              "format": "uint64",
              "minimum": 0.0
            }
          }
        },
        {
          "description": "AtTime will expire when `env.block.time` >= time",
          "type": "object",
          "required": [
            "at_time"
          ],
          "properties": {
            "at_time": {
              "type": "integer",
              "format": "uint64",
              "minimum": 0.0
            }
          }
        },
        {
          "description": "Never will never expire. Used to express the empty variant",
          "type": "object",
          "required": [
            "never"
          ],
          "properties": {
            "never": {
              "type": "object"
            }
          }
        }
      ]
    },
    "HumanAddr": {
      "type": "string"
    }
  }
}