Token conversion records
Reconcile accepted conversion requests with target-side issuance by reading indexed conversion lifecycle records, status, converted amounts, and replay identifiers.
Token conversion records trace how a convertible instrument moved from an accepted conversion request to target-token issuance. DALP exposes those records through a paginated API so your integration can reconcile the loan-side record with the target-side issuance record.
Use this reference after a holder or mandatory conversion has been submitted and you need to read the indexed outcome for reporting, audit, or back-office reconciliation. The endpoint is read-only: it cannot publish triggers, execute conversions, or evaluate whether an off-chain financing or legal event was valid.
Endpoint
Call GET /api/v2/tokens/{tokenAddress}/conversion/records for the source token that carries the Conversion feature. The response uses the standard DALP paginated list shape, so you can page through results and filter by status or holder.
curl --globoff "$DAPI_URL/api/v2/tokens/0x1111111111111111111111111111111111111111/conversion/records?page[limit]=50&sort=-initiatedAt" \
-H "X-Api-Key: $DALP_API_TOKEN"{
"data": [
{
"conversionId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"triggerId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"holder": "0x2222222222222222222222222222222222222222",
"principalConverted": "1000",
"principalConvertedExact": "1000000000000000000000",
"interestConvertedWad": "25",
"interestConvertedWadExact": "25000000000000000000",
"targetReceived": "500",
"targetReceivedExact": "500000000000000000000",
"effectivePriceUsedWad": "2",
"effectivePriceUsedWadExact": "2000000000000000000",
"status": "Minted",
"initiatedAt": "2026-06-06T12:00:00.000Z",
"finalizedAt": "2026-06-06T12:00:02.000Z",
"isForced": false,
"forcedBy": null,
"issuedRecipient": "0x2222222222222222222222222222222222222222",
"amountMinted": "500",
"amountMintedExact": "500000000000000000000",
"issuedAt": "2026-06-06T12:00:02.000Z"
}
],
"meta": {
"total": 1,
"facets": {}
},
"links": {
"self": "/v2/tokens/0x1111111111111111111111111111111111111111/conversion/records?sort=-initiatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"
}
}If the token has no attached Conversion feature in the indexed tenant scope, DALP returns an empty data array with total set to 0. Records are scoped to the current tenant; DALP returns nothing for tokens outside that scope.
Query controls
The endpoint supports pagination, sorting, filtering, and facets using the standard JSON:API query pattern.
| Control | Supported fields | Notes |
|---|---|---|
| Sort | initiatedAt, finalizedAt, status, isForced | The default sort is newest initiatedAt first. DALP uses conversionId as a stable tie-breaker. |
| Filter | holder, status, initiatedAt, finalizedAt, isForced | Address filters for holder are normalised before DALP queries the index. |
| Facets | status, isForced | Use facets to separate holder-initiated and forced conversion populations. |
| Pagination | page[limit], page[offset] | Use pagination for reporting jobs instead of assuming every conversion record fits in one response. |
Fields to reconcile
| Field | Meaning |
|---|---|
conversionId | Unique identifier generated for the conversion. Use it as the reconciliation key across loan-side and target-side records. |
triggerId | Conversion trigger that produced the conversion. |
holder | Holder whose loan exposure was converted. |
principalConverted and principalConvertedExact | Converted loan principal in decimal and smallest-unit forms. |
interestConvertedWad and interestConvertedWadExact | Interest included in the conversion, expressed with WAD precision. |
targetReceived and targetReceivedExact | Target-token amount calculated for the conversion. |
effectivePriceUsedWad and effectivePriceUsedWadExact | Effective conversion price used after the configured discount and cap. |
status | Conversion lifecycle status. Current records are Initiated or Minted. |
initiatedAt and finalizedAt | Indexed timestamps for accepted conversion and completed target mint. finalizedAt is null until the conversion reaches Minted. |
isForced and forcedBy | Whether the conversion used the mandatory conversion path and, when present, the address that forced it. |
issuedRecipient, amountMinted, amountMintedExact, and issuedAt | Target-side issuance details from the Conversion Minter record when DALP has indexed the mint. |
Replay and provenance model
A conversion is not just an amount change. DALP records a conversionId and propagates that identifier across the loan-side Conversion feature and the target-side Conversion Minter.
For reconciliation, treat conversionId as the join key. The loan-side record carries the trigger, holder, principal, interest, target amount, price, status, and forced-conversion flag. The target-side issuance fields show who received target tokens, how much was minted, and when the mint was indexed. The Conversion Minter rejects a duplicate target-side mint that carries the same conversionId, so when you see a second appearance of the same identifier it signals a reconciliation problem, not a new instruction.
Behaviour and failure cases
- If the source token has no attached Conversion feature, the endpoint returns an empty paginated response.
- If the conversion exists but target-side issuance has not been indexed yet, the issuance fields can be
nullwhile the loan-side record is visible. - If
statusisInitiated, reconcile the conversion against the transaction and event history before you treat target-token issuance as complete. - If
statusisMinted, useConversionFinalizedand the target-side issuance fields together when you build evidence packs. - The endpoint reads indexed records. The read does not make a live contract call, retry a conversion, replay a transaction, or execute a new conversion.
Related
Managed token permits API
Sign an EIP-2612 permit with a holder's managed key, store it as a pending signed permit, list stored permits, and relay one later as the token custodian.
Token conversion triggers API
Read the conversion triggers on a DALP token, including the effective price after discount and cap, and the published, disabled, and republished lifecycle of each trigger.