TIR API Reference
The TIR API (isbe-identity-tir-api) is the service that exposes the operations of the ISBE Trusted Issuers Registry. It provides two types of endpoints:
- JSON-RPC (
POST /trusted-issuers-registry/v1/jsonrpc) — blockchain write operations. Requires API Key authentication. - REST (
GET /trusted-issuers-registry/v1/issuers/{did}/attributes/{attributeId}) — read accreditations. No authentication required.
Base URLs
| Environment | Base URL |
|---|---|
| Production | https://tir.portal.redisbe.com/trusted-issuers-registry |
| Pre-production | https://tir.pre.portal.redisbe.com/trusted-issuers-registry |
Interactive OpenAPI documentation: GET <base-url>/api-docs
Authentication
The JSON-RPC endpoint requires an API Key in the HTTP header:
x-api-key: <YOUR_API_KEY>
The API Key is validated against the ISBE API Key management service. Contact the ISBE team to obtain one.
The REST read endpoint does not require authentication.
JSON-RPC protocol
The API follows the JSON-RPC 2.0 specification. All requests go to POST /trusted-issuers-registry/v1/jsonrpc with Content-Type application/json:
{
"jsonrpc": "2.0",
"method": "<method_name>",
"params": [{ ... }],
"id": <numeric_or_string_identifier>
}
Successful responses have the form:
{
"jsonrpc": "2.0",
"id": <same_id_as_request>,
"result": { ... }
}
Errors have the form:
{
"jsonrpc": "2.0",
"id": <same_id_as_request>,
"error": {
"code": <numeric_code>,
"message": "<description>"
}
}
Standard JSON-RPC error codes
| Code | Meaning |
|---|---|
-32700 | Parse error — invalid JSON |
-32600 | Invalid Request — invalid or unauthorized request |
-32601 | Method not found — unknown method |
-32602 | Invalid params — incorrect or missing parameters |
-32603 | Internal error — internal server error |
Accreditation publication flow
Publishing an accreditation in the TIR requires four steps. The first three are API calls; the fourth is verification:
sendSignedTransaction returns the transaction hash, but the transaction may not yet be included in a block. Before considering the publication complete, query the receipt with eth_getTransactionReceipt and verify that status = 0x1. If status = 0x0, the transaction failed: check the revertReason field.
Available methods
| Method | Description |
|---|---|
setAttributeMetadata | Builds an unsigned transaction to register the role metadata of an issuer. |
setAttributeData | Builds an unsigned transaction to register the accreditation JWT. |
sendSignedTransaction | Sends a signed transaction to the blockchain. |
REST read endpoint
| Method | Path | Description |
|---|---|---|
GET | /v1/issuers/{did}/attributes/{attributeId} | Returns the accreditation JSON for a given DID and attributeId. |
GET | /health | Service health status. |
GET | /metrics | Metrics in Prometheus format. |