Asset Data
Confirm Asset Data Acknowledgement
Verify a mined asset data acknowledgement and record it
POST
/
lending-external-securities-v2
/
api
/
markets
/
{market}
/
asset-data
/
acknowledge
/
confirm
curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/markets/0x70a0e25c7b768b87e658348b3b577678a173e038/asset-data/acknowledge/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200" }'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/markets/${marketAddress}/asset-data/acknowledge/confirm`,
{
method: 'POST',
headers: {
'X-API-Key': 'trusset_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({ txHash })
}
);
const { success, data, error } = await res.json();
if (!success) throw new Error(`${error.code}: ${error.message}`);
console.log(`Acknowledged version ${data.acknowledgement.version}, status ${data.assetData.status}`);
{
"success": true,
"data": {
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"signer": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"acknowledgement": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"curator": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"
},
"assetData": {
"marketAddress": "0x70a0e25c7b768b87e658348b3b577678a173e038",
"family": "FUNGIBLE",
"factory": "0xf1ad12f5698f58badd8a662acffccb067a2ddb8a",
"factorySupport": true,
"status": "ACKNOWLEDGED",
"record": {
"attested": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"acknowledged": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"version": 2,
"attestedAt": 1789899340,
"acknowledgedAt": 1789983603,
"diverged": false
},
"diverged": false,
"attested": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestedAt": "2026-09-20T10:15:40.000Z",
"txHash": "0x94c206e7614a93e3194caffa428756827f9c0f4d042de189439ffe2f225f822f",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"acknowledged": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"acknowledgedAt": "2026-09-21T09:40:03.000Z",
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"authority": {
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestorRole": "ISSUER",
"acknowledgers": [
"0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"0x89b1dc3d25b4fbd80e4b2bdb7ed01c4560325c52"
],
"seekingCurator": false
},
"viewer": {
"wallets": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"canAttest": false,
"canAcknowledge": true
},
"profile": null
}
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_NOT_VERIFIED",
"message": "The transaction emits no AssetDataAcknowledged for this market from the factory"
}
}
Records an acknowledgement once its transaction has mined. The receipt is read from the chain and checked before anything is written. The transaction must have succeeded, targeted the lending factory, and called
acknowledgeAssetData or acceptCuratorRole for this market. The factory must also have emitted AssetDataAcknowledged for this market. The recorded hash, version and wallet come from that event, never from the request.
An adoption receipt is accepted because an adoption can carry the first acknowledgement. Confirm Lender Role already records that one, so this route is for acknowledgements built with Acknowledge Asset Data. An adoption that acknowledged no version emits no event and is refused with TX_NOT_VERIFIED.
The transaction must have been signed by one of this instance’s verified wallets. The same market access check as Get Asset Data runs first.
Path Parameters
string
required
The market contract address, as 40 hex characters with a
0x prefix.Body Parameters
string
required
Hash of the mined acknowledgement transaction, as
0x and 64 hex characters.Response Fields
Confirming returns201.
object
Show child attributes
Show child attributes
string
The confirmed transaction.
string
The wallet that sent it, lowercased.
object
object
The market’s record after the confirm, in the shape of Get Asset Data without
origin.curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/markets/0x70a0e25c7b768b87e658348b3b577678a173e038/asset-data/acknowledge/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200" }'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/markets/${marketAddress}/asset-data/acknowledge/confirm`,
{
method: 'POST',
headers: {
'X-API-Key': 'trusset_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({ txHash })
}
);
const { success, data, error } = await res.json();
if (!success) throw new Error(`${error.code}: ${error.message}`);
console.log(`Acknowledged version ${data.acknowledgement.version}, status ${data.assetData.status}`);
{
"success": true,
"data": {
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"signer": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"acknowledgement": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"curator": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"
},
"assetData": {
"marketAddress": "0x70a0e25c7b768b87e658348b3b577678a173e038",
"family": "FUNGIBLE",
"factory": "0xf1ad12f5698f58badd8a662acffccb067a2ddb8a",
"factorySupport": true,
"status": "ACKNOWLEDGED",
"record": {
"attested": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"acknowledged": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"version": 2,
"attestedAt": 1789899340,
"acknowledgedAt": 1789983603,
"diverged": false
},
"diverged": false,
"attested": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestedAt": "2026-09-20T10:15:40.000Z",
"txHash": "0x94c206e7614a93e3194caffa428756827f9c0f4d042de189439ffe2f225f822f",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"acknowledged": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"acknowledgedAt": "2026-09-21T09:40:03.000Z",
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"authority": {
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestorRole": "ISSUER",
"acknowledgers": [
"0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"0x89b1dc3d25b4fbd80e4b2bdb7ed01c4560325c52"
],
"seekingCurator": false
},
"viewer": {
"wallets": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"canAttest": false,
"canAcknowledge": true
},
"profile": null
}
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_NOT_VERIFIED",
"message": "The transaction emits no AssetDataAcknowledged for this market from the factory"
}
}
Error Codes
The asset data routes report a validation failure with the first failing rule asmessage and no details list. A malformed txHash is therefore VALIDATION_ERROR here, not INVALID_TX. Every access code from Get Asset Data applies here too.
| Code | HTTP | Cause |
|---|---|---|
VALIDATION_ERROR | 400 | market is not a 40-character hex address, or txHash is missing or not 0x and 64 hex characters |
TX_REVERTED | 400 | The transaction was mined but reverted |
TX_WRONG_TARGET | 400 | The transaction was not sent to the lending factory |
TX_WRONG_FUNCTION | 400 | The transaction calls neither acknowledgeAssetData nor acceptCuratorRole |
TX_WRONG_ARGS | 400 | The transaction acknowledged asset data for a different market |
TX_NOT_VERIFIED | 400 | The factory emitted no AssetDataAcknowledged for this market in this transaction |
ACK_NOT_INSTANCE_BOUND | 403 | The transaction was signed by a wallet that is not verified for this instance |
TX_NOT_FOUND | 404 | No receipt yet. The transaction is unmined, dropped, or on another network |
ACKNOWLEDGE_CONFIRM_FAILED | 500 | The confirm failed for a reason the service did not classify |
⌘I
curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/markets/0x70a0e25c7b768b87e658348b3b577678a173e038/asset-data/acknowledge/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200" }'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/markets/${marketAddress}/asset-data/acknowledge/confirm`,
{
method: 'POST',
headers: {
'X-API-Key': 'trusset_your_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({ txHash })
}
);
const { success, data, error } = await res.json();
if (!success) throw new Error(`${error.code}: ${error.message}`);
console.log(`Acknowledged version ${data.acknowledgement.version}, status ${data.assetData.status}`);
{
"success": true,
"data": {
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"signer": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"acknowledgement": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"curator": "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"
},
"assetData": {
"marketAddress": "0x70a0e25c7b768b87e658348b3b577678a173e038",
"family": "FUNGIBLE",
"factory": "0xf1ad12f5698f58badd8a662acffccb067a2ddb8a",
"factorySupport": true,
"status": "ACKNOWLEDGED",
"record": {
"attested": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"acknowledged": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"version": 2,
"attestedAt": 1789899340,
"acknowledgedAt": 1789983603,
"diverged": false
},
"diverged": false,
"attested": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestedAt": "2026-09-20T10:15:40.000Z",
"txHash": "0x94c206e7614a93e3194caffa428756827f9c0f4d042de189439ffe2f225f822f",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"acknowledged": {
"contentHash": "0xba94f849b5852511dd4cc5a0d2cf10d2edbd51d27a69f4f434db122b5fbb0f1a",
"version": 2,
"acknowledgedAt": "2026-09-21T09:40:03.000Z",
"txHash": "0xa70f1de4aac64aad94819433446e2d751165dc7de06ac6f6f4860a3dbdff3200",
"schemaVersion": "1.0.0",
"bundleAvailable": true,
"storedAt": "2026-09-20T10:14:02.000Z"
},
"authority": {
"attestor": "0x511f527bcee080ac9b88afbf24386baedf393948",
"attestorRole": "ISSUER",
"acknowledgers": [
"0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93",
"0x89b1dc3d25b4fbd80e4b2bdb7ed01c4560325c52"
],
"seekingCurator": false
},
"viewer": {
"wallets": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"canAttest": false,
"canAcknowledge": true
},
"profile": null
}
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_NOT_VERIFIED",
"message": "The transaction emits no AssetDataAcknowledged for this market from the factory"
}
}
