{
"$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"
}
}
}