Sequence Metadata API

Store, refresh, retrieve, and search ERC-721/ERC-1155 token metadata and collection/contract info for Ethereum-compatible chains.

OpenAPI Specification

horizon-blockchain-games-metadata-openapi-original.json Raw ↑
{
  "components": {
    "schemas": {
      "ErrorWebrpcEndpoint": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcEndpoint"
          },
          "code": {
            "type": "number",
            "example": 0
          },
          "msg": {
            "type": "string",
            "example": "endpoint error"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorWebrpcRequestFailed": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcRequestFailed"
          },
          "code": {
            "type": "number",
            "example": -1
          },
          "msg": {
            "type": "string",
            "example": "request failed"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorWebrpcBadRoute": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcBadRoute"
          },
          "code": {
            "type": "number",
            "example": -2
          },
          "msg": {
            "type": "string",
            "example": "bad route"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 404
          }
        }
      },
      "ErrorWebrpcBadMethod": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcBadMethod"
          },
          "code": {
            "type": "number",
            "example": -3
          },
          "msg": {
            "type": "string",
            "example": "bad method"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 405
          }
        }
      },
      "ErrorWebrpcBadRequest": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcBadRequest"
          },
          "code": {
            "type": "number",
            "example": -4
          },
          "msg": {
            "type": "string",
            "example": "bad request"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorWebrpcBadResponse": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcBadResponse"
          },
          "code": {
            "type": "number",
            "example": -5
          },
          "msg": {
            "type": "string",
            "example": "bad response"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 500
          }
        }
      },
      "ErrorWebrpcServerPanic": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcServerPanic"
          },
          "code": {
            "type": "number",
            "example": -6
          },
          "msg": {
            "type": "string",
            "example": "server panic"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 500
          }
        }
      },
      "ErrorWebrpcInternalError": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcInternalError"
          },
          "code": {
            "type": "number",
            "example": -7
          },
          "msg": {
            "type": "string",
            "example": "internal error"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 500
          }
        }
      },
      "ErrorWebrpcClientDisconnected": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcClientDisconnected"
          },
          "code": {
            "type": "number",
            "example": -8
          },
          "msg": {
            "type": "string",
            "example": "client disconnected"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorWebrpcStreamLost": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcStreamLost"
          },
          "code": {
            "type": "number",
            "example": -9
          },
          "msg": {
            "type": "string",
            "example": "stream lost"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorWebrpcStreamFinished": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "WebrpcStreamFinished"
          },
          "code": {
            "type": "number",
            "example": -10
          },
          "msg": {
            "type": "string",
            "example": "stream finished"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 200
          }
        }
      },
      "ErrorUnauthorized": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Unauthorized"
          },
          "code": {
            "type": "number",
            "example": 1000
          },
          "msg": {
            "type": "string",
            "example": "Unauthorized access"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 401
          }
        }
      },
      "ErrorPermissionDenied": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "PermissionDenied"
          },
          "code": {
            "type": "number",
            "example": 1001
          },
          "msg": {
            "type": "string",
            "example": "Permission denied"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 403
          }
        }
      },
      "ErrorSessionExpired": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "SessionExpired"
          },
          "code": {
            "type": "number",
            "example": 1002
          },
          "msg": {
            "type": "string",
            "example": "Session expired"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 403
          }
        }
      },
      "ErrorMethodNotFound": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "MethodNotFound"
          },
          "code": {
            "type": "number",
            "example": 1003
          },
          "msg": {
            "type": "string",
            "example": "Method not found"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 404
          }
        }
      },
      "ErrorRequestConflict": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "RequestConflict"
          },
          "code": {
            "type": "number",
            "example": 1004
          },
          "msg": {
            "type": "string",
            "example": "Conflict with target resource"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 409
          }
        }
      },
      "ErrorFail": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Fail"
          },
          "code": {
            "type": "number",
            "example": 1005
          },
          "msg": {
            "type": "string",
            "example": "Request Failed"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 500
          }
        }
      },
      "ErrorGeoblocked": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Geoblocked"
          },
          "code": {
            "type": "number",
            "example": 1006
          },
          "msg": {
            "type": "string",
            "example": "Geoblocked region"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 451
          }
        }
      },
      "ErrorTimeout": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "Timeout"
          },
          "code": {
            "type": "number",
            "example": 2000
          },
          "msg": {
            "type": "string",
            "example": "Request timed out"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 408
          }
        }
      },
      "ErrorInvalidArgument": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "InvalidArgument"
          },
          "code": {
            "type": "number",
            "example": 2001
          },
          "msg": {
            "type": "string",
            "example": "Invalid argument"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorRequiredArgument": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "RequiredArgument"
          },
          "code": {
            "type": "number",
            "example": 2002
          },
          "msg": {
            "type": "string",
            "example": "Required argument missing"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorQueryFailed": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "QueryFailed"
          },
          "code": {
            "type": "number",
            "example": 2003
          },
          "msg": {
            "type": "string",
            "example": "Query failed"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorValidationFailed": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "ValidationFailed"
          },
          "code": {
            "type": "number",
            "example": 2004
          },
          "msg": {
            "type": "string",
            "example": "Validation failed"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorRateLimited": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "RateLimited"
          },
          "code": {
            "type": "number",
            "example": 2005
          },
          "msg": {
            "type": "string",
            "example": "Rate limited"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 429
          }
        }
      },
      "ErrorNotFound": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "NotFound"
          },
          "code": {
            "type": "number",
            "example": 3000
          },
          "msg": {
            "type": "string",
            "example": "Resource not found"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorProjectNotFound": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "ProjectNotFound"
          },
          "code": {
            "type": "number",
            "example": 3002
          },
          "msg": {
            "type": "string",
            "example": "Project not found"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorChainNotFound": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "ChainNotFound"
          },
          "code": {
            "type": "number",
            "example": 3003
          },
          "msg": {
            "type": "string",
            "example": "Chain not found"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ErrorTokenDirectoryDisabled": {
        "type": "object",
        "required": [
          "error",
          "code",
          "msg",
          "status"
        ],
        "properties": {
          "error": {
            "type": "string",
            "example": "TokenDirectoryDisabled"
          },
          "code": {
            "type": "number",
            "example": 4001
          },
          "msg": {
            "type": "string",
            "example": "Token Directory is disabled"
          },
          "cause": {
            "type": "string"
          },
          "status": {
            "type": "number",
            "example": 400
          }
        }
      },
      "ContractType": {
        "type": "string",
        "description": "Represented as uint16 on the server side",
        "enum": [
          "UNKNOWN",
          "ERC20",
          "ERC721",
          "ERC1155"
        ]
      },
      "ResourceStatus": {
        "type": "string",
        "description": "Represented as uint32 on the server side",
        "enum": [
          "NOT_AVAILABLE",
          "STALE",
          "AVAILABLE"
        ]
      },
      "PropertyType": {
        "type": "string",
        "description": "Represented as uint32 on the server side",
        "enum": [
          "INT",
          "STRING",
          "ARRAY",
          "GENERIC"
        ]
      },
      "SwapType": {
        "type": "string",
        "description": "Represented as uint32 on the server side",
        "enum": [
          "UNKNOWN",
          "BUY",
          "SELL"
        ]
      },
      "TaskStatus": {
        "type": "string",
        "description": "Represented as uint8 on the server side",
        "enum": [
          "QUEUED",
          "PAUSED",
          "FAILED",
          "COMPLETED"
        ]
      },
      "Version": {
        "type": "object",
        "required": [
          "webrpcVersion",
          "schemaVersion",
          "schemaHash",
          "appVersion"
        ],
        "properties": {
          "webrpcVersion": {
            "type": "string"
          },
          "schemaVersion": {
            "type": "string"
          },
          "schemaHash": {
            "type": "string"
          },
          "appVersion": {
            "type": "string"
          }
        }
      },
      "RuntimeStatus": {
        "type": "object",
        "required": [
          "healthOK",
          "startTime",
          "uptime",
          "uptimeString",
          "ver",
          "branch",
          "commitHash",
          "checks",
          "runnable"
        ],
        "properties": {
          "healthOK": {
            "type": "boolean"
          },
          "startTime": {
            "type": "string"
          },
          "uptime": {
            "type": "number"
          },
          "uptimeString": {
            "type": "string"
          },
          "ver": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "commitHash": {
            "type": "string"
          },
          "checks": {
            "$ref": "#/components/schemas/RuntimeChecks"
          },
          "runnable": {
            "type": "object",
            "description": "map<string,RunnableStatus>",
            "additionalProperties": {
              "$ref": "#/components/schemas/RunnableStatus"
            }
          }
        }
      },
      "RunnableStatus": {
        "type": "object",
        "required": [
          "running",
          "restarts",
          "startTime",
          "lastError"
        ],
        "properties": {
          "running": {
            "type": "boolean"
          },
          "restarts": {
            "type": "number"
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "lastError": {
            "type": "object"
          }
        }
      },
      "RuntimeChecks": {
        "type": "object"
      },
      "ContractIndex": {
        "type": "object",
        "required": [
          "chainId",
          "address",
          "type",
          "metadata",
          "contentHash",
          "deployed",
          "bytecodeHash",
          "notFound",
          "updatedAt",
          "status"
        ],
        "properties": {
          "chainId": {
            "type": "number"
          },
          "address": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ContractType"
          },
          "metadata": {
            "type": "object",
            "description": "map<string,any>",
            "additionalProperties": {
              "type": "object"
            }
          },
          "contentHash": {
            "type": "number"
          },
          "deployed": {
            "type": "boolean"
          },
          "bytecodeHash": {
            "type": "string"
          },
          "notFound": {
            "type": "boolean"
          },
          "updatedAt": {
            "type": "string"
          },
          "queuedAt": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ResourceStatus"
          }
        }
      },
      "TokenIndex": {
        "type": "object",
        "required": [
          "key",
          "chainId",
          "contractAddress",
          "tokenId",
          "metadata",
          "updatedAt"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "chainId": {
            "type": "number"
          },
          "contractAddress": {
            "type": "string"
          },
          "tokenId": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "description": "map<string,any>",
            "additionalProperties": {
              "type": "object"
            }
          },
          "notFound": {
            "type": "boolean"
          },
          "lastFetched": {
            "type": "string"
          },
          "fetchCount": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "queuedAt": {
            "type": "string"
          }
        }
      },
      "ContractInfo": {
        "type": "object",
        "required": [
          "chainId",
          "address",
          "name",
          "type",
          "symbol",
          "logoURI",
          "deployed",
          "bytecodeHash",
          "extensions",
          "contentHash",
          "updatedAt",
          "notFound",
          "status"
        ],
        "properties": {
          "chainId": {
            "type": "number"
          },
          "address": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          },
          "logoURI": {
            "type": "string"
          },
          "deployed": {
            "type": "boolean"
          },
          "bytecodeHash": {
            "type": "string"
          },
          "extensions": {
            "$ref": "#/components/schemas/ContractInfoExtensions"
          },
          "contentHash": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "notFound": {
            "type": "boolean"
          },
          "queuedAt": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ResourceStatus"
          }
        }
      },
      "ContractInfoExtensions": {
        "type": "object",
        "required": [
          "link",
          "description",
          "categories",
          "ogImage",
          "ogName",
          "originChainId",
          "originAddress",
          "blacklist",
          "verified",
          "verifiedBy",
          "featured"
        ],
        "properties": {
          "link": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "description": "[]string",
            "items": {
              "type": "string"
            }
          },
          "ogImage": {
            "type": "string"
          },
          "ogName": {
            "type": "string"
          },
          "originChainId": {
            "type": "number"
          },
          "originAddress": {
            "type": "string"
          },
          "blacklist": {
            "type": "boolean"
          },
          "verified": {
            "type": "boolean"
          },
          "verifiedBy": {
            "type": "string"
          },
          "featured": {
            "type": "boolean"
          }
        }
      },
      "TokenMetadata": {
        "type": "object",
        "required": [
          "tokenId",
          "name",
          "attributes",
          "status"
        ],
        "properties": {
          "tokenId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "video": {
            "type": "string"
          },
          "audio": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "description": "map<string,any>",
            "additionalProperties": {
              "type": "object"
            }
          },
          "attributes": {
            "type": "array",
            "description": "[]map<string,any>",
            "items": {
              "type": "object",
              "description": "map<string,any>",
              "additionalProperties": {
                "type": "object"
              }
            }
          },
          "imageData": {
            "type": "string"
          },
          "externalUrl": {
            "type": "string"
          },
          "backgroundColor": {
            "type": "string"
          },
          "animationUrl": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "assets": {
            "type": "array",
            "description": "[]Asset",
            "items": {
              "$ref": "#/components/schemas/Asset"
            }
          },
          "status": {
            "$ref": "#/components/schemas/ResourceStatus"
          },
          "queuedAt": {
            "type": "string"
          },
          "lastFetched": {
            "type": "string"
          }
        }
      },
      "PropertyFilter": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/PropertyType"
          },
          "min": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "values": {
            "type": "array",
            "description": "[]any",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "Filter": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "properties": {
            "type": "array",
            "description": "[]PropertyFilter",
            "items": {
              "$ref": "#/components/schemas/PropertyFilter"
            }
          }
        }
      },
      "Collection": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "metadata",
          "private"
        ],
        "properties": {
          "id": {
            "type": "number"
          },
          "projectId": {
            "type": "number"
          },
          "metadata": {
            "$ref": "#/components/schemas/CollectionMetadata"
          },
          "private": {
            "type": "boolean"
          },
          "revealKey": {
            "type": "string"
          },
          "tokenCount": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "deletedAt": {
            "type": "string"
          },
          "baseURIs": {
            "$ref": "#/components/schemas/CollectionBaseURIs"
          },
          "assets": {
            "type": "array",
            "description": "[]Asset",
            "items": {
              "$ref": "#/components/schemas/Asset"
            }
          }
        }
      },
      "CollectionMetadata": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "externalLink": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "description": "map<string,any>",
            "additionalProperties": {
              "type": "object"
            }
          },
          "attributes": {
            "type": "array",
            "description": "[]map<string,any>",
            "items": {
              "type": "object",
              "description": "map<string,any>",
              "additionalProperties": {
                "type": "object"
              }
            }
          }
        }
      },
      "CollectionBaseURIs": {
        "type": "object",
        "required": [
          "contractMetadataURI",
          "tokenMetadataURI"
        ],
        "properties": {
          "contractMetadataURI": {
            "type": "string"
          },
          "tokenMetadataURI": {
            "type": "string"
          }
        }
      },
      "ContractCollection": {
        "type": "object",
        "required": [
          "id",
          "chainId",
          "contractAddress",
          "collectionId"
        ],
        "properties": {
          "id": {
            "type": "number"
          },
          "chainId": {
            "type": "number"
          },
          "contractAddress": {
            "type": "string"
          },
          "collectionId": {
            "type": "number"
          }
        }
      },
      "Asset": {
        "type": "object",
        "required": [
          "id",
          "collectionId",
          "metadataField"
  

# --- truncated at 32 KB (356 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/horizon-blockchain-games/refs/heads/main/openapi/horizon-blockchain-games-metadata-openapi-original.json