Burn Tokens
This endpoint allows burning tokens based on a provided proof, with an option to persist proof data on-chain.
Overview
The Burn Tokens endpoint facilitates the burning of a specified amount of tokens. It requires a proof of an off-chain event or condition that justifies the burn. If persistOnchain
is true, the hash of the proof will be recorded on the blockchain.
Authentication
This endpoint requires API key authentication. The API key must have the burn
scope.
To authenticate, provide your API key in the x-believe-api-key
request header.
Example:
x-believe-api-key: your_actual_api_key_here
Rate Limiting
Requests to this endpoint are rate-limited to 10 requests per second per API key.
Idempotency
To prevent accidental duplicate operations, this endpoint supports idempotency via the x-idempotency-key
header.
- Header:
x-idempotency-key
- Value: A unique string (e.g., a UUID) generated by the client for each distinct operation.
- Purpose: If a request is retried (e.g., due to a network error) with the same
x-idempotency-key
as a previously successful request, the server should recognize it and not perform the operation a second time, instead returning the result of the original successful operation. This ensures that operations are processed at most once.
Example:
x-idempotency-key: your_unique_generated_uuid_v4_here
Request Body
Field | Type | Required | Description |
---|---|---|---|
type | string | Yes | A string identifier for the type of proof being submitted (e.g., “PRODUCT_BUY”, “PRODUCT_SELL”). |
proof | Object | Yes | A JSON object containing the actual proof data. Its structure will depend on the type . |
burnAmount | number | Yes | The quantity of tokens to burn. Must be a positive number. |
persistOnchain | boolean | Yes | A boolean flag indicating whether the hash of the proof should be recorded on the blockchain. |
Example Request
Response Body
On success, the API returns a JSON object with the following fields:
Field | Type | Description |
---|---|---|
result | string | Indicates the outcome of the operation (e.g., “SUCCESS”). |
hash | string | A SHA256 hash of the provided proof object. |
txHash | string | The on-chain transaction hash for the token burn. If persistOnchain was true, this hash also confirms the proof data was recorded on-chain. |
type | string | The type of proof that was processed. |
dateBurned | string | An ISO 8601 timestamp indicating when the burn was processed. |
Example Response (Success)
Functional Error Codes
Beyond authentication and rate limiting, the burn endpoint can return specific error codes related to the burn operation itself. These are typically returned with a 400 Bad Request status.
Error Code | Description |
---|---|
ERR_TOKEN_NOT_FOUND | The token associated with the API key (or specified, if applicable) could not be found or is invalid. Ensure the token ID is correct. |
ERR_CREATE_API_EVENT_FAILED | The system encountered an issue while trying to record the API event for this burn attempt. This might indicate a temporary internal problem. |
ERR_INVALID_PROOF | The type of proof provided is not recognized, not permitted for the API key, or the proof object itself is considered invalid. |
ERR_BURN_TOKENOMICS_FAILED | The core token burn operation failed. This could be due to issues with the on-chain transaction, insufficient funds, or other internal errors during the burn process. |
When these errors occur, the API response will typically include the error code and a message providing more details, similar to the authentication error format.
Example (400 Bad Request):
Authorizations
Headers
A unique key generated by the client to ensure a request is processed at most once. This is used to prevent accidental duplicate operations if a request is retried (e.g., due to a network error).
Body
Details for the token burn operation.
The body is of type object
.
Response
Successful token burn.
The response is of type object
.