openapi: 3.2.0 info: title: Immutable zkEVM Tokens API version: 1.0.0 description: Immutable Multi Rollup API contact: name: Immutable API Support email: support@immutable.com url: https://support.immutable.com servers: - url: https://api.sandbox.immutable.com tags: - name: tokens description: ERC20 Token Endpoints x-displayName: tokens paths: /v1/chains/{chain_name}/tokens: get: x-public: true description: List ERC20 tokens tags: - tokens operationId: ListERC20Tokens summary: List ERC20 tokens parameters: - name: chain_name description: The name of chain in: path required: true schema: $ref: '#/components/schemas/ChainName' - name: from_updated_at in: query description: Datetime to use as the oldest updated timestamp required: false schema: type: string example: '2022-08-16T17:43:26.991388Z' format: date-time - name: verification_status in: query required: false description: List of verification status to filter by schema: type: array items: $ref: '#/components/schemas/AssetVerificationStatus' - name: is_canonical in: query required: false description: '[Experimental - Canonical token data may be updated] Filter by canonical or non-canonical tokens.' schema: type: boolean - name: page_cursor in: query description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. required: false schema: $ref: '#/components/schemas/PageCursor' - name: page_size description: Maximum number of items to return in: query required: false schema: $ref: '#/components/schemas/PageSize' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListTokensResult' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' /v1/chains/{chain_name}/tokens/{contract_address}: get: x-public: true description: Get single ERC20 token tags: - tokens operationId: GetERC20Token summary: Get single ERC20 token parameters: - name: contract_address in: path description: The address of contract required: true schema: type: string example: '0x8a90cab2b38dba80c64b7734e58ee1db38b8992e' - name: chain_name description: The name of chain in: path required: true schema: $ref: '#/components/schemas/ChainName' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetTokenResult' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' components: schemas: BasicAPIError: type: object properties: message: type: string description: Error Message maxLength: 1024 pattern: ^[\x20-\x7E]*$ example: all fields must be provided link: type: string format: uri description: Link to IMX documentation that can help resolve this error maxLength: 2048 example: https://docs.x.immutable.com/reference/#/ trace_id: type: string description: Trace ID of the initial request maxLength: 64 pattern: ^[a-zA-Z0-9_-]+$ example: e47634b79a5cd6894ddc9639ec4aad26 required: - message - link - trace_id Chain: type: object description: The chain details properties: id: type: string description: The id of chain example: eip155:13372 name: type: string description: The name of chain example: imtbl-zkevm-testnet required: - id - name GetTokenResult: type: object description: Single Token properties: result: $ref: '#/components/schemas/Token' required: - result PageCursor: type: string description: Encoded page cursor to retrieve previous or next page. Use the value returned in the response. example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0= APIError400: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - VALIDATION_ERROR example: VALIDATION_ERROR details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details AssetVerificationStatus: description: The verification status for a given contract type: string enum: - verified - unverified - spam - inactive ListTokensResult: type: object properties: result: type: array description: List of tokens items: $ref: '#/components/schemas/Token' page: $ref: '#/components/schemas/Page' required: - result - page Token: type: object properties: chain: $ref: '#/components/schemas/Chain' contract_address: type: string description: The address of token contract example: '0xc344c05eef8876e517072f879dae8905aa2b956b' root_contract_address: type: - string - 'null' description: The address of root token contract example: '0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa' root_chain_id: type: - string - 'null' description: The id of the root chain for a bridged token example: eip155:1 bridge_used: type: - string - 'null' description: The name of the bridge, for bridged tokens only example: axelar symbol: type: - string - 'null' description: The symbol of token example: AAA decimals: type: - integer - 'null' description: The decimals of token example: 18 image_url: type: - string - 'null' description: The image url of token example: https://some-url name: type: - string - 'null' description: The name of token example: Token A verification_status: $ref: '#/components/schemas/AssetVerificationStatus' updated_at: type: string format: date-time example: '2022-08-16T17:43:26.991388Z' description: When the collection was last updated is_canonical: type: boolean example: true description: Indicates whether the token is canonical or not required: - chain - contract_address - root_contract_address - symbol - decimals - image_url - name - updated_at - verification_status - is_canonical ChainName: type: string description: The name of chain example: imtbl-zkevm-testnet Page: type: object description: Pagination properties properties: previous_cursor: type: - string - 'null' description: First item as an encoded string example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0= next_cursor: type: - string - 'null' description: Last item as an encoded string example: ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICN9Cn0= required: - previous_cursor - next_cursor APIError404: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - RESOURCE_NOT_FOUND example: RESOURCE_NOT_FOUND details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details APIError500: allOf: - $ref: '#/components/schemas/BasicAPIError' - type: object properties: code: type: string description: Error Code enum: - INTERNAL_SERVER_ERROR example: INTERNAL_SERVER_ERROR details: type: - object - 'null' description: Additional details to help resolve the error required: - code - details PageSize: type: integer format: int32 description: Maximum number of items to return minimum: 1 default: 200 maximum: 200 example: 10 responses: BadRequest: description: Bad Request (400) content: application/json: schema: $ref: '#/components/schemas/APIError400' InternalServerError: description: Internal Server Error (500) content: application/json: schema: $ref: '#/components/schemas/APIError500' NotFound: description: The specified resource was not found (404) content: application/json: schema: $ref: '#/components/schemas/APIError404' securitySchemes: BearerAuthWithClient: type: http scheme: bearer bearerFormat: JWT BearerAuth: type: http scheme: bearer bearerFormat: JWT ImmutableApiKey: x-go-name: ImmutableApiKey type: apiKey in: header name: x-immutable-api-key OktaBearerAuth: type: http scheme: bearer bearerFormat: JWT