swagger: '2.0' info: title: Cosmoshub - gRPC Gateway docs description: A REST interface for state queries version: 1.0.0 paths: /panacea/aol/v2/owners/{owner_address}/topics: get: summary: Topics returns topic names. operationId: Topics responses: '200': description: A successful response. schema: type: object properties: topic_names: type: array items: type: string pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: >- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: >- QueryTopicsResponse is the response type for the Query/Topics RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: owner_address in: path required: true type: string - name: pagination.key description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. in: query required: false type: string format: byte - name: pagination.offset description: >- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. in: query required: false type: string format: uint64 - name: pagination.limit description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. in: query required: false type: string format: uint64 - name: pagination.count_total description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. in: query required: false type: boolean - name: pagination.reverse description: >- reverse is set to true if results are to be returned in the descending order. in: query required: false type: boolean tags: - Query /panacea/aol/v2/owners/{owner_address}/topics/{topic_name}: get: summary: Topic returns topic details. operationId: Topic responses: '200': description: A successful response. schema: type: object properties: topic: type: object properties: description: type: string total_records: type: string format: uint64 total_writers: type: string format: uint64 description: Topic defines a topic type. description: >- QueryTopicResponse is the response type for the Query/Topic RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: owner_address in: path required: true type: string - name: topic_name in: path required: true type: string tags: - Query /panacea/aol/v2/owners/{owner_address}/topics/{topic_name}/records/{offset}: get: summary: Record returns record details. operationId: Record responses: '200': description: A successful response. schema: type: object properties: record: type: object properties: key: type: string format: byte value: type: string format: byte nano_timestamp: type: string format: int64 writer_address: type: string description: Record defines a record type. description: >- QueryRecordResponse is the response type for the Query/Record RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: owner_address in: path required: true type: string - name: topic_name in: path required: true type: string - name: offset in: path required: true type: string format: uint64 tags: - Query /panacea/aol/v2/owners/{owner_address}/topics/{topic_name}/writers: get: summary: Writers returns writer addresses. operationId: Writers responses: '200': description: A successful response. schema: type: object properties: writer_addresses: type: array items: type: string pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: >- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: >- QueryWritersResponse is the response type for the Query/Writers RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: owner_address in: path required: true type: string - name: topic_name in: path required: true type: string - name: pagination.key description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. in: query required: false type: string format: byte - name: pagination.offset description: >- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. in: query required: false type: string format: uint64 - name: pagination.limit description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. in: query required: false type: string format: uint64 - name: pagination.count_total description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. in: query required: false type: boolean - name: pagination.reverse description: >- reverse is set to true if results are to be returned in the descending order. in: query required: false type: boolean tags: - Query /panacea/aol/v2/owners/{owner_address}/topics/{topic_name}/writers/{writer_address}: get: summary: Writer returns writer details. operationId: Writer responses: '200': description: A successful response. schema: type: object properties: writer: type: object properties: moniker: type: string description: type: string nano_timestamp: type: string format: int64 description: Topic defines a topic type. description: >- QueryWriterResponse is the response type for the Query/Writer RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: owner_address in: path required: true type: string - name: topic_name in: path required: true type: string - name: writer_address in: path required: true type: string tags: - Query /panacea/did/v2/dids/{did_base64}: get: summary: DID returns a DID Document with a sequence number. operationId: DID responses: '200': description: A successful response. schema: type: object properties: did_document_with_seq: type: object properties: document: type: object properties: contexts: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. id: type: string controller: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. verification_methods: type: array items: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method authentications: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: >- VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship title: |- TODO: the repeated gogoproto.customtype has an issue: https://github.com/gogo/protobuf/issues/478 assertion_methods: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: >- VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship key_agreements: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: >- VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship capability_invocations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: >- VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship capability_delegations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: >- VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship services: type: array items: type: object properties: id: type: string type: type: string service_endpoint: type: string description: Service defines a service in the W3C DID Document. description: >- NOTE: All 'json_name' and 'gogoproto.customtype' tags are for panacea-core to unmarshal the v1.3 genesis which is in the W3C JSON-LD format. On the other hand, the panacea-core and cosmos-sdk don't use those tags to marshal result to JSON (via grpc-gateway). title: DIDDocument defines a W3C DID Document sequence: type: string format: uint64 description: >- DIDDocumentWithSeq defines a message for DID Document with a sequence number for preventing replay attacks. description: >- QueryDIDResponse is the response type for the Query/DIDDocumentWithSeq RPC method. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string value: type: string format: byte parameters: - name: did_base64 description: 'NOTE: Using base64 due to the URI path cannot contain colons.' in: path required: true type: string tags: - Query /panacea/nft/v1/classes/{class_id}: get: operationId: ClassRecord responses: '200': description: A successful response. schema: type: object properties: class_record: type: object properties: class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: >- symbol is an abbreviated name for nft classification. Optional description: type: string title: >- description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: >- uri_hash is a hash of the document pointed by uri. Optional data: title: >- data is the app specific metadata of the NFT class. Optional type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } description: Class defines the class of the nft type. policy: type: object properties: class_id: type: string creator: type: string controller: type: string transfer_policy: type: string enum: - TRANSFER_POLICY_UNSPECIFIED - TRANSFER_POLICY_LOCKED - TRANSFER_POLICY_OWNER_TRANSFERABLE default: TRANSFER_POLICY_UNSPECIFIED description: >- TransferPolicy defines whether an NFT owner may transfer an NFT. revocable: type: boolean max_supply: type: string format: uint64 description: >- ClassPolicy stores Panacea policy state for one standard NFT class. minted_count: type: string format: uint64 description: >- ClassRecord combines a standard NFT class with its Panacea policy state. description: QueryClassRecordResponse returns one class and its policy. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id in: path required: true type: string tags: - Query /panacea/nft/v1/nfts: get: operationId: NFTRecords responses: '200': description: A successful response. schema: type: object properties: nft_records: type: array items: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: >- LiveNFTRecord combines a standard NFT with owner and lifecycle state. pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: >- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: >- QueryNFTRecordsResponse returns live NFT records and an opaque cursor. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id in: query required: false type: string - name: owner in: query required: false type: string - name: pagination.key description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. in: query required: false type: string format: byte - name: pagination.offset description: >- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. in: query required: false type: string format: uint64 - name: pagination.limit description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. in: query required: false type: string format: uint64 - name: pagination.count_total description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. in: query required: false type: boolean - name: pagination.reverse description: >- reverse is set to true if results are to be returned in the descending order. in: query required: false type: boolean tags: - Query /panacea/nft/v1/nfts/{class_id}/{nft_id}: get: operationId: NFTRecord responses: '200': description: A successful response. schema: type: object properties: nft_record: type: object properties: live: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: >- LiveNFTRecord combines a standard NFT with owner and lifecycle state. burn_tombstone: type: object properties: class_id: type: string nft_id: type: string mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. uri: type: string uri_hash: type: string data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. burned_at: type: string format: date-time burned_by: type: string description: >- BurnTombstone permanently preserves a burned NFT's metadata and lifecycle. description: NFTRecord returns either a live NFT or its burn tombstone. description: QueryNFTRecordResponse returns one live NFT or burn tombstone. default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id in: path required: true type: string - name: nft_id in: path required: true type: string tags: - Query /cosmos/nft/v1beta1/balance/{owner}/{class_id}: get: summary: >- Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 operationId: Balance responses: '200': description: A successful response. schema: type: object properties: amount: type: string format: uint64 title: >- amount is the number of all NFTs of a given class owned by the owner title: >- QueryBalanceResponse is the response type for the Query/Balance RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: owner description: owner is the owner address of the nft in: path required: true type: string - name: class_id description: class_id associated with the nft in: path required: true type: string tags: - Query /cosmos/nft/v1beta1/classes: get: summary: Classes queries all NFT classes operationId: Classes responses: '200': description: A successful response. schema: type: object properties: classes: type: array items: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: >- symbol is an abbreviated name for nft classification. Optional description: type: string title: >- description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: >- uri_hash is a hash of the document pointed by uri. Optional data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: >- data is the app specific metadata of the NFT class. Optional description: Class defines the class of the nft type. description: class defines the class of the nft type. pagination: description: pagination defines the pagination in the response. type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise title: >- QueryClassesResponse is the response type for the Query/Classes RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: pagination.key description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. in: query required: false type: string format: byte - name: pagination.offset description: >- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. in: query required: false type: string format: uint64 - name: pagination.limit description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. in: query required: false type: string format: uint64 - name: pagination.count_total description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. in: query required: false type: boolean - name: pagination.reverse description: >- reverse is set to true if results are to be returned in the descending order. in: query required: false type: boolean tags: - Query /cosmos/nft/v1beta1/classes/{class_id}: get: summary: Class queries an NFT class based on its id operationId: Class responses: '200': description: A successful response. schema: type: object properties: class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: >- symbol is an abbreviated name for nft classification. Optional description: type: string title: >- description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: >- uri_hash is a hash of the document pointed by uri. Optional data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: >- data is the app specific metadata of the NFT class. Optional description: Class defines the class of the nft type. title: >- QueryClassResponse is the response type for the Query/Class RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id description: class_id associated with the nft in: path required: true type: string tags: - Query /cosmos/nft/v1beta1/nfts: get: summary: >- NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in ERC721Enumerable operationId: NFTs responses: '200': description: A successful response. schema: type: object properties: nfts: type: array items: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. title: NFT defines the NFT pagination: description: pagination defines the pagination in the response. type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise title: >- QueryNFTsResponse is the response type for the Query/NFTs RPC methods default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id description: class_id associated with the nft. in: query required: false type: string - name: owner description: owner is the owner address of the nft. in: query required: false type: string - name: pagination.key description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. in: query required: false type: string format: byte - name: pagination.offset description: >- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. in: query required: false type: string format: uint64 - name: pagination.limit description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. in: query required: false type: string format: uint64 - name: pagination.count_total description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. in: query required: false type: boolean - name: pagination.reverse description: >- reverse is set to true if results are to be returned in the descending order. in: query required: false type: boolean tags: - Query /cosmos/nft/v1beta1/nfts/{class_id}/{id}: get: summary: NFT queries an NFT based on its class and id. operationId: NFT responses: '200': description: A successful response. schema: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. title: owner is the owner address of the nft title: QueryNFTResponse is the response type for the Query/NFT RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id description: class_id associated with the nft in: path required: true type: string - name: id description: id is a unique identifier of the NFT in: path required: true type: string tags: - Query /cosmos/nft/v1beta1/owner/{class_id}/{id}: get: summary: >- Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 operationId: Owner responses: '200': description: A successful response. schema: type: object properties: owner: type: string title: owner is the owner address of the nft title: >- QueryOwnerResponse is the response type for the Query/Owner RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id description: class_id associated with the nft in: path required: true type: string - name: id description: id is a unique identifier of the NFT in: path required: true type: string tags: - Query /cosmos/nft/v1beta1/supply/{class_id}: get: summary: >- Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. operationId: Supply responses: '200': description: A successful response. schema: type: object properties: amount: type: string format: uint64 title: amount is the number of all NFTs from the given class title: >- QuerySupplyResponse is the response type for the Query/Supply RPC method default: description: An unexpected error response. schema: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } parameters: - name: class_id description: class_id associated with the nft in: path required: true type: string tags: - Query definitions: cosmos.base.query.v1beta1.PageRequest: type: object properties: key: type: string format: byte description: |- key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be set. offset: type: string format: uint64 description: |- offset is a numeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be set. limit: type: string format: uint64 description: >- limit is the total number of results to be returned in the result page. If left empty it will default to a value to be set by each app. count_total: type: boolean description: >- count_total is set to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. count_total is only respected when offset is used. It is ignored when key is set. reverse: type: boolean description: >- reverse is set to true if results are to be returned in the descending order. description: |- message SomeRequest { Foo some_parameter = 1; PageRequest pagination = 2; } title: |- PageRequest is to be embedded in gRPC request messages for efficient pagination. Ex: cosmos.base.query.v1beta1.PageResponse: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: |- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: |- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } google.protobuf.Any: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } grpc.gateway.runtime.Error: type: object properties: error: type: string code: type: integer format: int32 message: type: string details: type: array items: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } panacea.aol.v2.QueryRecordResponse: type: object properties: record: type: object properties: key: type: string format: byte value: type: string format: byte nano_timestamp: type: string format: int64 writer_address: type: string description: Record defines a record type. description: QueryRecordResponse is the response type for the Query/Record RPC method. panacea.aol.v2.QueryTopicResponse: type: object properties: topic: type: object properties: description: type: string total_records: type: string format: uint64 total_writers: type: string format: uint64 description: Topic defines a topic type. description: QueryTopicResponse is the response type for the Query/Topic RPC method. panacea.aol.v2.QueryTopicsResponse: type: object properties: topic_names: type: array items: type: string pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: |- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: QueryTopicsResponse is the response type for the Query/Topics RPC method. panacea.aol.v2.QueryWriterResponse: type: object properties: writer: type: object properties: moniker: type: string description: type: string nano_timestamp: type: string format: int64 description: Topic defines a topic type. description: QueryWriterResponse is the response type for the Query/Writer RPC method. panacea.aol.v2.QueryWritersResponse: type: object properties: writer_addresses: type: array items: type: string pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: |- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: >- QueryWritersResponse is the response type for the Query/Writers RPC method. panacea.aol.v2.Record: type: object properties: key: type: string format: byte value: type: string format: byte nano_timestamp: type: string format: int64 writer_address: type: string description: Record defines a record type. panacea.aol.v2.Topic: type: object properties: description: type: string total_records: type: string format: uint64 total_writers: type: string format: uint64 description: Topic defines a topic type. panacea.aol.v2.Writer: type: object properties: moniker: type: string description: type: string nano_timestamp: type: string format: int64 description: Topic defines a topic type. panacea.did.v2.DIDDocument: type: object properties: contexts: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. id: type: string controller: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. verification_methods: type: array items: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method authentications: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship title: |- TODO: the repeated gogoproto.customtype has an issue: https://github.com/gogo/protobuf/issues/478 assertion_methods: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship key_agreements: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship capability_invocations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship capability_delegations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship services: type: array items: type: object properties: id: type: string type: type: string service_endpoint: type: string description: Service defines a service in the W3C DID Document. description: >- NOTE: All 'json_name' and 'gogoproto.customtype' tags are for panacea-core to unmarshal the v1.3 genesis which is in the W3C JSON-LD format. On the other hand, the panacea-core and cosmos-sdk don't use those tags to marshal result to JSON (via grpc-gateway). title: DIDDocument defines a W3C DID Document panacea.did.v2.DIDDocumentWithSeq: type: object properties: document: type: object properties: contexts: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. id: type: string controller: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. verification_methods: type: array items: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method authentications: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship title: |- TODO: the repeated gogoproto.customtype has an issue: https://github.com/gogo/protobuf/issues/478 assertion_methods: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship key_agreements: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship capability_invocations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship capability_delegations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship services: type: array items: type: object properties: id: type: string type: type: string service_endpoint: type: string description: Service defines a service in the W3C DID Document. description: >- NOTE: All 'json_name' and 'gogoproto.customtype' tags are for panacea-core to unmarshal the v1.3 genesis which is in the W3C JSON-LD format. On the other hand, the panacea-core and cosmos-sdk don't use those tags to marshal result to JSON (via grpc-gateway). title: DIDDocument defines a W3C DID Document sequence: type: string format: uint64 description: >- DIDDocumentWithSeq defines a message for DID Document with a sequence number for preventing replay attacks. panacea.did.v2.QueryDIDResponse: type: object properties: did_document_with_seq: type: object properties: document: type: object properties: contexts: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. id: type: string controller: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. verification_methods: type: array items: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method authentications: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship title: |- TODO: the repeated gogoproto.customtype has an issue: https://github.com/gogo/protobuf/issues/478 assertion_methods: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship key_agreements: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship capability_invocations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship capability_delegations: type: array items: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: >- VerificationRelationship defines a W3C verification relationship services: type: array items: type: object properties: id: type: string type: type: string service_endpoint: type: string description: Service defines a service in the W3C DID Document. description: >- NOTE: All 'json_name' and 'gogoproto.customtype' tags are for panacea-core to unmarshal the v1.3 genesis which is in the W3C JSON-LD format. On the other hand, the panacea-core and cosmos-sdk don't use those tags to marshal result to JSON (via grpc-gateway). title: DIDDocument defines a W3C DID Document sequence: type: string format: uint64 description: >- DIDDocumentWithSeq defines a message for DID Document with a sequence number for preventing replay attacks. description: |- QueryDIDResponse is the response type for the Query/DIDDocumentWithSeq RPC method. panacea.did.v2.Service: type: object properties: id: type: string type: type: string service_endpoint: type: string description: Service defines a service in the W3C DID Document. panacea.did.v2.Strings: type: object properties: values: type: array items: type: string description: >- Strings defines a JSON-LD string array format which is marshalled to a single string if the array length is 1. panacea.did.v2.VerificationMethod: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method panacea.did.v2.VerificationRelationship: type: object properties: verification_method_id: type: string verification_method: type: object properties: id: type: string type: type: string controller: type: string public_key_base58: type: string title: VerificationMethod defines a W3C verification method title: VerificationRelationship defines a W3C verification relationship cosmos.nft.v1beta1.Class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: symbol is an abbreviated name for nft classification. Optional description: type: string title: description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: uri_hash is a hash of the document pointed by uri. Optional data: title: data is the app specific metadata of the NFT class. Optional type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } description: Class defines the class of the nft type. cosmos.nft.v1beta1.NFT: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. panacea.nft.v1.BurnTombstone: type: object properties: class_id: type: string nft_id: type: string mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. uri: type: string uri_hash: type: string data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. burned_at: type: string format: date-time burned_by: type: string description: BurnTombstone permanently preserves a burned NFT's metadata and lifecycle. panacea.nft.v1.ClassPolicy: type: object properties: class_id: type: string creator: type: string controller: type: string transfer_policy: type: string enum: - TRANSFER_POLICY_UNSPECIFIED - TRANSFER_POLICY_LOCKED - TRANSFER_POLICY_OWNER_TRANSFERABLE default: TRANSFER_POLICY_UNSPECIFIED description: TransferPolicy defines whether an NFT owner may transfer an NFT. revocable: type: boolean max_supply: type: string format: uint64 description: ClassPolicy stores Panacea policy state for one standard NFT class. panacea.nft.v1.ClassRecord: type: object properties: class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: symbol is an abbreviated name for nft classification. Optional description: type: string title: description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: uri_hash is a hash of the document pointed by uri. Optional data: title: data is the app specific metadata of the NFT class. Optional type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } description: Class defines the class of the nft type. policy: type: object properties: class_id: type: string creator: type: string controller: type: string transfer_policy: type: string enum: - TRANSFER_POLICY_UNSPECIFIED - TRANSFER_POLICY_LOCKED - TRANSFER_POLICY_OWNER_TRANSFERABLE default: TRANSFER_POLICY_UNSPECIFIED description: TransferPolicy defines whether an NFT owner may transfer an NFT. revocable: type: boolean max_supply: type: string format: uint64 description: ClassPolicy stores Panacea policy state for one standard NFT class. minted_count: type: string format: uint64 description: ClassRecord combines a standard NFT class with its Panacea policy state. panacea.nft.v1.LiveNFTRecord: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: LiveNFTRecord combines a standard NFT with owner and lifecycle state. panacea.nft.v1.LiveNFTStatus: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: |- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. panacea.nft.v1.MintRecord: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. panacea.nft.v1.NFTRecord: type: object properties: live: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: LiveNFTRecord combines a standard NFT with owner and lifecycle state. burn_tombstone: type: object properties: class_id: type: string nft_id: type: string mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. uri: type: string uri_hash: type: string data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. burned_at: type: string format: date-time burned_by: type: string description: >- BurnTombstone permanently preserves a burned NFT's metadata and lifecycle. description: NFTRecord returns either a live NFT or its burn tombstone. panacea.nft.v1.QueryClassRecordResponse: type: object properties: class_record: type: object properties: class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: symbol is an abbreviated name for nft classification. Optional description: type: string title: >- description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: uri_hash is a hash of the document pointed by uri. Optional data: title: data is the app specific metadata of the NFT class. Optional type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } description: Class defines the class of the nft type. policy: type: object properties: class_id: type: string creator: type: string controller: type: string transfer_policy: type: string enum: - TRANSFER_POLICY_UNSPECIFIED - TRANSFER_POLICY_LOCKED - TRANSFER_POLICY_OWNER_TRANSFERABLE default: TRANSFER_POLICY_UNSPECIFIED description: >- TransferPolicy defines whether an NFT owner may transfer an NFT. revocable: type: boolean max_supply: type: string format: uint64 description: >- ClassPolicy stores Panacea policy state for one standard NFT class. minted_count: type: string format: uint64 description: >- ClassRecord combines a standard NFT class with its Panacea policy state. description: QueryClassRecordResponse returns one class and its policy. panacea.nft.v1.QueryNFTRecordResponse: type: object properties: nft_record: type: object properties: live: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: >- LiveNFTRecord combines a standard NFT with owner and lifecycle state. burn_tombstone: type: object properties: class_id: type: string nft_id: type: string mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. uri: type: string uri_hash: type: string data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. burned_at: type: string format: date-time burned_by: type: string description: >- BurnTombstone permanently preserves a burned NFT's metadata and lifecycle. description: NFTRecord returns either a live NFT or its burn tombstone. description: QueryNFTRecordResponse returns one live NFT or burn tombstone. panacea.nft.v1.QueryNFTRecordsResponse: type: object properties: nft_records: type: array items: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. owner: type: string status: type: string enum: - LIVE_NFT_STATUS_UNSPECIFIED - LIVE_NFT_STATUS_ACTIVE - LIVE_NFT_STATUS_REVOKED default: LIVE_NFT_STATUS_UNSPECIFIED description: >- LiveNFTStatus is derived from revocation: ACTIVE when revocation is absent and REVOKED when revocation is present. UNSPECIFIED is never returned. mint: type: object properties: minted_at: type: string format: date-time minted_by: type: string description: MintRecord stores immutable mint provenance. revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. description: >- LiveNFTRecord combines a standard NFT with owner and lifecycle state. pagination: type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise description: |- PageResponse is to be embedded in gRPC response messages where the corresponding request message has used PageRequest. message SomeResponse { repeated Bar results = 1; PageResponse page = 2; } description: QueryNFTRecordsResponse returns live NFT records and an opaque cursor. panacea.nft.v1.Revocation: type: object properties: revoked_at: type: string format: date-time revoked_by: type: string description: Revocation stores an irreversible revocation. panacea.nft.v1.TransferPolicy: type: string enum: - TRANSFER_POLICY_UNSPECIFIED - TRANSFER_POLICY_LOCKED - TRANSFER_POLICY_OWNER_TRANSFERABLE default: TRANSFER_POLICY_UNSPECIFIED description: TransferPolicy defines whether an NFT owner may transfer an NFT. cosmos.nft.v1beta1.QueryBalanceResponse: type: object properties: amount: type: string format: uint64 title: amount is the number of all NFTs of a given class owned by the owner title: QueryBalanceResponse is the response type for the Query/Balance RPC method cosmos.nft.v1beta1.QueryClassResponse: type: object properties: class: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: symbol is an abbreviated name for nft classification. Optional description: type: string title: description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: uri_hash is a hash of the document pointed by uri. Optional data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is the app specific metadata of the NFT class. Optional description: Class defines the class of the nft type. title: QueryClassResponse is the response type for the Query/Class RPC method cosmos.nft.v1beta1.QueryClassesResponse: type: object properties: classes: type: array items: type: object properties: id: type: string title: >- id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 name: type: string title: >- name defines the human-readable name of the NFT classification. Optional symbol: type: string title: symbol is an abbreviated name for nft classification. Optional description: type: string title: >- description is a brief description of nft classification. Optional uri: type: string title: >- uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional uri_hash: type: string title: uri_hash is a hash of the document pointed by uri. Optional data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is the app specific metadata of the NFT class. Optional description: Class defines the class of the nft type. description: class defines the class of the nft type. pagination: description: pagination defines the pagination in the response. type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise title: QueryClassesResponse is the response type for the Query/Classes RPC method cosmos.nft.v1beta1.QueryNFTResponse: type: object properties: nft: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. title: owner is the owner address of the nft title: QueryNFTResponse is the response type for the Query/NFT RPC method cosmos.nft.v1beta1.QueryNFTsResponse: type: object properties: nfts: type: array items: type: object properties: class_id: type: string title: >- class_id associated with the NFT, similar to the contract address of ERC721 id: type: string title: id is a unique identifier of the NFT uri: type: string title: uri for the NFT metadata stored off chain uri_hash: type: string title: uri_hash is a hash of the document pointed by uri data: type: object properties: type_url: type: string description: >- A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics. value: type: string format: byte description: >- Must be a valid serialized protocol buffer of the above specified type. description: >- `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z". JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { "@type": "type.googleapis.com/google.profile.Person", "firstName": , "lastName": } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]): { "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" } title: data is an app specific data of the NFT. Optional description: NFT defines the NFT. title: NFT defines the NFT pagination: description: pagination defines the pagination in the response. type: object properties: next_key: type: string format: byte description: |- next_key is the key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results. total: type: string format: uint64 title: >- total is total number of results available if PageRequest.count_total was set, its value is undefined otherwise title: QueryNFTsResponse is the response type for the Query/NFTs RPC methods cosmos.nft.v1beta1.QueryOwnerResponse: type: object properties: owner: type: string title: owner is the owner address of the nft title: QueryOwnerResponse is the response type for the Query/Owner RPC method cosmos.nft.v1beta1.QuerySupplyResponse: type: object properties: amount: type: string format: uint64 title: amount is the number of all NFTs from the given class title: QuerySupplyResponse is the response type for the Query/Supply RPC method