Skip to main content

Start Change Owner Process

Starts a node ownership change on one setup of the node: every tokenized asset deployed under the setup is transferred to the wallet you select, then the owner address on the setup's diamond is changed to it. The call only creates the process; the steps run asynchronously, one on-chain transaction each. Poll Get Change Owner Process to follow it. See the overview for the lifecycle.

Only the platform owner's API key may call this endpoint; any other key gets 403. The setup must belong to the node, and the new wallet must be a wallet of the same node, on the setup's chain, with a different address from the setup's current owner wallet. Only one unfinished process may exist per setup.

Required permission: node:change-owner

Request​

POST /v2/admin/nodes/{node_id}/change-owner-processes

Parameters​

NameTypeInDescription
node_idstringpathRequired. The node that owns the setup

Headers​

NameDescription
AuthorizationRequired. Bearer <access_token>
Content-TypeRequired. application/json

Body​

FieldTypeRequiredDescription
setup_idstringYesThe setup to change ownership on. 24-character hex id; must belong to node_id.
new_wallet_idstringYesThe node wallet that becomes the new owner. Must be owned by node_id, be on the chain of the setup's network, and have a different address from the setup's current owner wallet.

Example​

curl --request POST \
--url '{{baseUrl}}/v2/admin/nodes/6901350deb7ed8c1c38de4e9/change-owner-processes' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"setup_id": "6905f1c2a8e4b27d3c9a1f42",
"new_wallet_id": "6a89b68e0c46ca4c941271aa"
}'

Response​

201 Created

{
"id": "6907a4e1b5c83f2d9e6a0b17",
"node_id": "6901350deb7ed8c1c38de4e9",
"setup_id": "6905f1c2a8e4b27d3c9a1f42",
"network_id": "68fe7b31c2d94a5e8b1f0c63",
"old_owner_address": "0xecE2c86490b1214035cb1bbcC9781aE45d29BB97",
"new_wallet_id": "6a89b68e0c46ca4c941271aa",
"new_owner_address": "0xa112983907944387B64ba512daF256B3f28f93f5",
"status": "started",
"current_step_order": 0,
"total_steps": 3,
"progress": 0,
"steps": [
{
"id": "6907a4e1b5c83f2d9e6a0b18",
"type": "transfer_tokenized_assets",
"status": "pending",
"order": 1,
"token_id": "67d8774e903bfcbe7eb5d93e",
"transaction_hash": null,
"retry_count": 0,
"max_retries": 3,
"error": null,
"started_at": null,
"completed_at": null
},
{
"id": "6907a4e1b5c83f2d9e6a0b19",
"type": "transfer_tokenized_assets",
"status": "pending",
"order": 2,
"token_id": "67e1a2b3c4d5e6f708192a3b",
"transaction_hash": null,
"retry_count": 0,
"max_retries": 3,
"error": null,
"started_at": null,
"completed_at": null
},
{
"id": "6907a4e1b5c83f2d9e6a0b1a",
"type": "change_node_owner",
"status": "pending",
"order": 3,
"token_id": null,
"transaction_hash": null,
"retry_count": 0,
"max_retries": 3,
"error": null,
"started_at": null,
"completed_at": null
}
],
"error": null,
"created_at": "2026-11-02T09:14:27.512Z",
"updated_at": "2026-11-02T09:14:27.512Z",
"completed_at": null
}

Response Fields​

FieldTypeDescription
idstringProcess id
node_idstringThe node that owns the setup
setup_idstringThe setup the change runs on
network_idstringThe setup's network
old_owner_addressstringAddress of the setup's current owner wallet, the one being replaced
new_wallet_idstringThe wallet selected as new owner
new_owner_addressstringAddress of the new owner wallet
statusstringProcess status: started, in_progress, paused, completed, failed, cancelled. See the overview.
current_step_orderintegerorder of the step being executed; 0 before the first step is sent
total_stepsintegerNumber of steps: one per tokenized asset plus the final owner change
progressnumberPercentage (0–100) of steps that are completed or skipped
stepsarrayThe steps, in order
steps[].idstringStep id
steps[].typestringtransfer_tokenized_assets or change_node_owner
steps[].statusstringpending, in_progress, completed, failed, skipped
steps[].orderintegerPosition of the step, starting at 1. Pass it as step_order to retry.
steps[].token_idstring | nullThe token a transfer step moves; null for change_node_owner
steps[].transaction_hashstring | nullHash of the confirmed transaction
steps[].retry_countintegerHow many times the step was retried
steps[].max_retriesintegerRetry limit of the step (3)
steps[].errorstring | nullWhy the step failed
steps[].started_atstring | nullWhen the step was sent
steps[].completed_atstring | nullWhen the step completed
errorstring | nullProcess-level error. Step failures are reported on the step.
created_atstringISO 8601 creation time
updated_atstringISO 8601 time of the last change
completed_atstring | nullWhen the process completed

Errors​

StatusCodeDescription
40010015Validation failed (missing setup_id or new_wallet_id, setup_id not a 24-character hex id), or the request was refused: the setup is not found on this node, the setup's current owner wallet or its network is not found, the new wallet is not found, does not belong to the node, is not on the setup's chain, or is already the setup's owner. message says which.
40010016new_wallet_id is not a valid id
40010001Node not found
40020002A process that is not finished (started, in_progress or paused) already exists for this setup
40310005The API key does not belong to the platform owner

See Errors for the error format and common codes.