{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Cw721QueryMsg",
"oneOf": [
{
"description": "Return the owner of the given token, error if token does not exist",
"type": "object",
"required": [
"owner_of"
],
"properties": {
"owner_of": {
"type": "object",
"required": [
"token_id"
],
"properties": {
"include_expired": {
"description": "unset or false will filter out expired approvals, you must set to true to see them",
"type": [
"boolean",
"null"
]
},
"token_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Return operator that can access all of the owner's tokens.",
"type": "object",
"required": [
"approval"
],
"properties": {
"approval": {
"type": "object",
"required": [
"spender",
"token_id"
],
"properties": {
"include_expired": {
"type": [
"boolean",
"null"
]
},
"spender": {
"type": "string"
},
"token_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Return approvals that a token has",
"type": "object",
"required": [
"approvals"
],
"properties": {
"approvals": {
"type": "object",
"required": [
"token_id"
],
"properties": {
"include_expired": {
"type": [
"boolean",
"null"
]
},
"token_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Return approval of a given operator for all tokens of an owner, error if not set",
"type": "object",
"required": [
"operator"
],
"properties": {
"operator": {
"type": "object",
"required": [
"operator",
"owner"
],
"properties": {
"include_expired": {
"type": [
"boolean",
"null"
]
},
"operator": {
"type": "string"
},
"owner": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "List all operators that can access all of the owner's tokens",
"type": "object",
"required": [
"all_operators"
],
"properties": {
"all_operators": {
"type": "object",
"required": [
"owner"
],
"properties": {
"include_expired": {
"description": "unset or false will filter out expired items, you must set to true to see them",
"type": [
"boolean",
"null"
]
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"owner": {
"type": "string"
},
"start_after": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Total number of tokens issued",
"type": "object",
"required": [
"num_tokens"
],
"properties": {
"num_tokens": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Deprecated: use GetCollectionInfoAndExtension instead! Will be removed in next release!",
"deprecated": true,
"type": "object",
"required": [
"contract_info"
],
"properties": {
"contract_info": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Returns `AllCollectionInfoResponse`",
"type": "object",
"required": [
"get_config"
],
"properties": {
"get_config": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Returns `CollectionInfoAndExtensionResponse`",
"type": "object",
"required": [
"get_collection_info_and_extension"
],
"properties": {
"get_collection_info_and_extension": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "returns `AllInfoResponse` which contains contract, collection and nft details",
"type": "object",
"required": [
"get_all_info"
],
"properties": {
"get_all_info": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Returns `CollectionExtensionAttributes`",
"type": "object",
"required": [
"get_collection_extension_attributes"
],
"properties": {
"get_collection_extension_attributes": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Deprecated: use GetMinterOwnership instead! Will be removed in next release!",
"deprecated": true,
"type": "object",
"required": [
"ownership"
],
"properties": {
"ownership": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Return the minter Deprecated: use GetMinterOwnership instead! Will be removed in next release!",
"deprecated": true,
"type": "object",
"required": [
"minter"
],
"properties": {
"minter": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_minter_ownership"
],
"properties": {
"get_minter_ownership": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_creator_ownership"
],
"properties": {
"get_creator_ownership": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Returns the list of additional minters (paginated).",
"type": "object",
"required": [
"get_additional_minters"
],
"properties": {
"get_additional_minters": {
"type": "object",
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "With MetaData Extension. Returns metadata about one particular token, based on *ERC721 Metadata JSON Schema* but directly from the contract",
"type": "object",
"required": [
"nft_info"
],
"properties": {
"nft_info": {
"type": "object",
"required": [
"token_id"
],
"properties": {
"token_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_nft_by_extension"
],
"properties": {
"get_nft_by_extension": {
"type": "object",
"properties": {
"extension": {
"anyOf": [
{
"$ref": "#/definitions/NftExtension"
},
{
"type": "null"
}
]
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "With MetaData Extension. Returns the result of both `NftInfo` and `OwnerOf` as one query as an optimization for clients",
"type": "object",
"required": [
"all_nft_info"
],
"properties": {
"all_nft_info": {
"type": "object",
"required": [
"token_id"
],
"properties": {
"include_expired": {
"description": "unset or false will filter out expired approvals, you must set to true to see them",
"type": [
"boolean",
"null"
]
},
"token_id": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "With Enumerable extension. Returns all tokens owned by the given address, [] if unset.",
"type": "object",
"required": [
"tokens"
],
"properties": {
"tokens": {
"type": "object",
"required": [
"owner"
],
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"owner": {
"type": "string"
},
"start_after": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "With Enumerable extension. Requires pagination. Lists all token_ids controlled by the contract.",
"type": "object",
"required": [
"all_tokens"
],
"properties": {
"all_tokens": {
"type": "object",
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Custom msg query. Default implementation returns an empty binary.",
"type": "object",
"required": [
"extension"
],
"properties": {
"extension": {
"type": "object",
"required": [
"msg"
],
"properties": {
"msg": {
"$ref": "#/definitions/Empty"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_collection_extension"
],
"properties": {
"get_collection_extension": {
"type": "object",
"properties": {
"msg": {
"anyOf": [
{
"$ref": "#/definitions/CollectionExtension_for_RoyaltyInfo"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_withdraw_address"
],
"properties": {
"get_withdraw_address": {
"type": "object",
"additionalProperties": false
}
},
"additionalProperties": false
}
],
"definitions": {
"Addr": {
"description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.",
"type": "string"
},
"CollectionExtension_for_RoyaltyInfo": {
"type": "object",
"required": [
"description",
"image"
],
"properties": {
"banner_url": {
"type": [
"string",
"null"
]
},
"description": {
"type": "string"
},
"explicit_content": {
"type": [
"boolean",
"null"
]
},
"external_link": {
"type": [
"string",
"null"
]
},
"image": {
"type": "string"
},
"royalty_info": {
"anyOf": [
{
"$ref": "#/definitions/RoyaltyInfo"
},
{
"type": "null"
}
]
},
"start_trading_time": {
"anyOf": [
{
"$ref": "#/definitions/Timestamp"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"Decimal": {
"description": "A fixed-point decimal value with 18 fractional digits, i.e. Decimal(1_000_000_000_000_000_000) == 1.0\n\nThe greatest possible value that can be represented is 340282366920938463463.374607431768211455 (which is (2^128 - 1) / 10^18)",
"type": "string"
},
"Empty": {
"description": "An empty struct that serves as a placeholder in different places, such as contracts that don't set a custom message.\n\nIt is designed to be expressible in correct JSON and JSON Schema but contains no meaningful data. Previously we used enums without cases, but those cannot represented as valid JSON Schema (https://github.com/CosmWasm/cosmwasm/issues/451)",
"type": "object",
"additionalProperties": false
},
"NftExtension": {
"type": "object",
"properties": {
"animation_url": {
"type": [
"string",
"null"
]
},
"attributes": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/definitions/Trait"
}
},
"background_color": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"external_url": {
"type": [
"string",
"null"
]
},
"image": {
"type": [
"string",
"null"
]
},
"image_data": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"youtube_url": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"RoyaltyInfo": {
"type": "object",
"required": [
"payment_address",
"share"
],
"properties": {
"payment_address": {
"$ref": "#/definitions/Addr"
},
"share": {
"$ref": "#/definitions/Decimal"
}
},
"additionalProperties": false
},
"Timestamp": {
"description": "A point in time in nanosecond precision.\n\nThis type can represent times from 1970-01-01T00:00:00Z to 2554-07-21T23:34:33Z.\n\n## Examples\n\n``` # use cosmwasm_std::Timestamp; let ts = Timestamp::from_nanos(1_000_000_202); assert_eq!(ts.nanos(), 1_000_000_202); assert_eq!(ts.seconds(), 1); assert_eq!(ts.subsec_nanos(), 202);\n\nlet ts = ts.plus_seconds(2); assert_eq!(ts.nanos(), 3_000_000_202); assert_eq!(ts.seconds(), 3); assert_eq!(ts.subsec_nanos(), 202); ```",
"allOf": [
{
"$ref": "#/definitions/Uint64"
}
]
},
"Trait": {
"type": "object",
"required": [
"trait_type",
"value"
],
"properties": {
"display_type": {
"type": [
"string",
"null"
]
},
"trait_type": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": false
},
"Uint64": {
"description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```",
"type": "string"
}
}
}