Skip to main content

Get Setup Contract History

Lists every deployment record of a setup, newest first: the initial deployment (create) and each later upgrade (update), with its status and, per contract, the versions, addresses and transaction hash. Get Setup Contracts folds these records into the current view; this endpoint returns them unfolded.

The response is a JSON array, not paginated.

Required permission: contract:deploy

Request​

GET /v2/admin/nodes/{node_id}/setups/{setup_id}/contracts/history

Parameters​

NameTypeInDescription
node_idstringpathRequired. The node's id
setup_idstringpathRequired. The setup's id

Headers​

NameDescription
AuthorizationRequired. Bearer <access_token>

Example​

curl --request GET \
--url '{{baseUrl}}/v2/admin/nodes/6a4bef2b1e781b11c22e9707/setups/6a552db09c6088e126a4be87/contracts/history' \
--header 'Authorization: Bearer <access_token>'

Response​

[
{
"id": "6a7d01e4b2c3d40012f0aa10",
"type": "update",
"status": 2,
"kyc_token_address": "0x1C0777276B13c56d416c41D4186744b9ba0a0D3a",
"contracts": [
{
"type": "fee",
"previous_address": "0x1bD038546274fbE5656711d4E5371EE1bABCd126",
"previous_version": "2.2.0",
"new_version": "2.3.0",
"started_at": "2026-10-30T09:12:01.5Z"
}
],
"created_at": "2026-10-30T09:12:01.5Z",
"updated_at": "2026-10-30T09:12:01.5Z"
},
{
"id": "6a552db29c6088e126a4be88",
"type": "create",
"status": 3,
"kyc_token_address": "0x1C0777276B13c56d416c41D4186744b9ba0a0D3a",
"contracts": [
{
"type": "burn",
"address": "0x222CB82947be52A91a88B1A2E116abf4D9bA6eed",
"previous_version": "1.0.0",
"new_version": "1.0.0",
"tx_hash": "0x5e1c0f7f3a2b4d9c8e7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e",
"started_at": "2026-10-28T22:10:36.1Z",
"completed_at": "2026-10-28T22:16:03.4Z"
}
],
"activated_at": "2026-10-28T23:20:11.8Z",
"created_at": "2026-10-28T22:10:36.1Z",
"updated_at": "2026-10-28T23:20:11.8Z"
}
]

Response Fields​

FieldTypeDescription
[].idstringDeployment record id (the node_contract_id other responses refer to)
[].typestringcreate (initial deployment) or update (upgrade)
[].statusinteger1 Started, 2 InProgress, 3 Done, 4 Error
[].kyc_token_addressstringKYC token the diamond is wired to. Omitted when not recorded
[].contractsarrayThe contracts this record deploys, sorted by type
[].contracts[].typestringContract type: diamond_cut, diamond, diamond_loupe, ownership, fee, burn, rent, otc, secondary, listing, kyc_token, kyc_token_impl
[].contracts[].addressstringDeployed address. Omitted until deployed
[].contracts[].previous_addressstringAddress being replaced (upgrades). Omitted when none
[].contracts[].previous_versionstringVersion before this deployment. For an initial deployment it equals new_version
[].contracts[].new_versionstringVersion this deployment installs
[].contracts[].tx_hashstringDeployment transaction hash. Omitted until sent
[].contracts[].started_atstringWhen this contract's deployment started (ISO 8601)
[].contracts[].completed_atstringWhen it completed. Omitted until then
[].activated_atstringWhen the record's diamond cut was confirmed on chain, making it live. Omitted until then
[].created_atstringRecord creation time (ISO 8601)
[].updated_atstringLast update time (ISO 8601)

Errors​

Every refusal from this endpoint is answered with HTTP 409, whatever its code.

StatusCodeDescription
40910016node_id or setup_id is not a valid id
40910001Node not found, or the setup does not exist or belongs to another node (node domain 2)
40910005The node is outside your part of the hierarchy (node domain 2)
40910000Unexpected server-side failure

See Errors for the error format and common codes.