Whitelists
Confirm Whitelist Ownership
Record a mined ownership proposal or acceptance on a whitelist
POST
/
lending-external-securities-v2
/
api
/
access-lists
/
{listId}
/
owner
/
confirm
curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/access-lists/cmv2k8q1d0004l70a3n6p2w9e/owner/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8"}'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/access-lists/${listId}/owner/confirm`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ txHash })
}
);
const { data } = await res.json();
if (data.outcome === 'OWNERSHIP_ACCEPTED' && !data.recordHeldByThisInstance) {
console.log('The record now sits with the instance that holds the new owner wallet');
}
{
"success": true,
"data": {
"list": {
"id": "cmv2k8q1d0004l70a3n6p2w9e",
"name": "Depositors Q4",
"purpose": "DEPOSITOR",
"address": "0x7d31e6b09a4c25f8e1b73d0a6c94e2f58b1a0c37",
"ownerWallet": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwnerWallet": null,
"managers": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"memberCount": 148,
"archived": false,
"createdTxHash": "0x3f6c0e7a91d24b58c06e1f9a7b3d25e48c17a0f9d63e2b51a84c7f0e9d16b23a",
"createdBlock": 9384120,
"syncedBlock": 9402377,
"createdAt": "2026-10-08T14:02:11.000Z",
"updatedAt": "2026-10-09T11:02:40.000Z",
"own": true
},
"outcome": "OWNERSHIP_ACCEPTED",
"applied": [
{
"event": "OwnershipTransferred",
"previousOwner": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"newOwner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
],
"owner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwner": null,
"ownedByThisInstance": true,
"recordHeldByThisInstance": true,
"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8",
"signedBy": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
}
Verifies a mined
The confirm call can also return any transaction verification error.
transferOwnership or acceptOwnership transaction on the whitelist and records the owner and pending owner as the chain answers them after it. The instance that keeps the list confirms either step. The instance whose wallet the pending transfer names confirms too.
An accepted transfer can move the record. When the new owner is a verified wallet of your instance, and the instance that kept the record does not hold it, the record moves to your instance. When your instance kept the record and the new owner is a verified wallet of exactly one other instance, it moves to that instance. recordHeldByThisInstance says where it stands after the call.
The change is written to the audit log as LENDING_ACCESS_LIST_OWNER_PROPOSED or LENDING_ACCESS_LIST_OWNERSHIP_ACCEPTED. A move of the record is written as LENDING_ACCESS_LIST_REHOMED.
Path Parameters
string
required
The whitelist ID from List Whitelists.
Body Parameters
string
required
Hash of the mined transaction, 0x followed by 64 hex characters.
Response Fields
object
Show child attributes
Show child attributes
object
The list after the change, as on List Whitelists. It has the
lists shape with own: true when your instance keeps the record, and the managed shape when another instance does. null when the record could not be read back.string
OWNER_PROPOSED for a proposal, OWNERSHIP_ACCEPTED for an acceptance.array
The ownership events the transaction emitted on the list, each
{ event, previousOwner, newOwner }.string
The owner on chain after the transaction, lowercased.
string
The pending owner after the transaction, or
null.boolean
Whether the owner is a verified wallet of your instance.
boolean
Whether your instance keeps the record after this call.
boolean
Present and
true when this call moved the record after reading the transaction. A record that moved to your instance when the call first read the list carries no flag, and recordHeldByThisInstance shows it.string
The verified transaction.
string
The wallet that sent the transaction, lowercased.
curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/access-lists/cmv2k8q1d0004l70a3n6p2w9e/owner/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8"}'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/access-lists/${listId}/owner/confirm`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ txHash })
}
);
const { data } = await res.json();
if (data.outcome === 'OWNERSHIP_ACCEPTED' && !data.recordHeldByThisInstance) {
console.log('The record now sits with the instance that holds the new owner wallet');
}
{
"success": true,
"data": {
"list": {
"id": "cmv2k8q1d0004l70a3n6p2w9e",
"name": "Depositors Q4",
"purpose": "DEPOSITOR",
"address": "0x7d31e6b09a4c25f8e1b73d0a6c94e2f58b1a0c37",
"ownerWallet": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwnerWallet": null,
"managers": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"memberCount": 148,
"archived": false,
"createdTxHash": "0x3f6c0e7a91d24b58c06e1f9a7b3d25e48c17a0f9d63e2b51a84c7f0e9d16b23a",
"createdBlock": 9384120,
"syncedBlock": 9402377,
"createdAt": "2026-10-08T14:02:11.000Z",
"updatedAt": "2026-10-09T11:02:40.000Z",
"own": true
},
"outcome": "OWNERSHIP_ACCEPTED",
"applied": [
{
"event": "OwnershipTransferred",
"previousOwner": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"newOwner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
],
"owner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwner": null,
"ownedByThisInstance": true,
"recordHeldByThisInstance": true,
"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8",
"signedBy": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
VALIDATION_ERROR | 400 | txHash is missing or malformed |
TX_NOT_VERIFIED | 400 | The transaction changed no ownership of this list |
NOT_PENDING_OWNER | 403 | Another instance keeps the list and no wallet of your instance is named by its pending transfer |
ACCESS_LIST_NOT_FOUND | 404 | No whitelist with this ID is kept by your instance, or managed or pending to one of its wallets, on this network |
ACCESS_LIST_OWNER_CONFIRM_FAILED | 500 | The change could not be recorded and no more specific code applied |
ACCESS_LISTS_NOT_CONFIGURED | 503 | The whitelist factory is not deployed on this network |
ACCESS_LIST_UNREADABLE | 503 | The owner could not be read after the transaction’s block, so nothing was recorded. Retry shortly |
SERVICE_UNAVAILABLE | 503 | Your instance’s verified wallets could not be read. Retry shortly |
⌘I
curl -X POST "https://api.trusset.org/lending-external-securities-v2/api/access-lists/cmv2k8q1d0004l70a3n6p2w9e/owner/confirm" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8"}'
const res = await fetch(
`https://api.trusset.org/lending-external-securities-v2/api/access-lists/${listId}/owner/confirm`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ txHash })
}
);
const { data } = await res.json();
if (data.outcome === 'OWNERSHIP_ACCEPTED' && !data.recordHeldByThisInstance) {
console.log('The record now sits with the instance that holds the new owner wallet');
}
{
"success": true,
"data": {
"list": {
"id": "cmv2k8q1d0004l70a3n6p2w9e",
"name": "Depositors Q4",
"purpose": "DEPOSITOR",
"address": "0x7d31e6b09a4c25f8e1b73d0a6c94e2f58b1a0c37",
"ownerWallet": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwnerWallet": null,
"managers": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
"memberCount": 148,
"archived": false,
"createdTxHash": "0x3f6c0e7a91d24b58c06e1f9a7b3d25e48c17a0f9d63e2b51a84c7f0e9d16b23a",
"createdBlock": 9384120,
"syncedBlock": 9402377,
"createdAt": "2026-10-08T14:02:11.000Z",
"updatedAt": "2026-10-09T11:02:40.000Z",
"own": true
},
"outcome": "OWNERSHIP_ACCEPTED",
"applied": [
{
"event": "OwnershipTransferred",
"previousOwner": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
"newOwner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
],
"owner": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d",
"pendingOwner": null,
"ownedByThisInstance": true,
"recordHeldByThisInstance": true,
"txHash": "0x2d7f4a1c8e9b03d56f2a7c1e4b8d09f36a5c2e7b1d4f8a03c6e9b2d5f1a7c4e8",
"signedBy": "0x8c2d4e6f0a1b3c5d7e9f1a2b4c6d8e0f2a4b6c8d"
}
}
