Skip to main content

Upsert Setup Platform Owner Fee

Creates or replaces what the platform owner charges one setup (entity 2, scoped to the setup and stamped with the setup's network). Only the platform owner node's own API key may call this; every other key gets 403. The setup must belong to the node. See Fees Overview.

The row is saved and returned at once. When the setup is deployed and this is its first platform-owner override or the rates changed, the new fee is pushed to that setup's contracts asynchronously: one node transaction of type 12 (UpdateDefaultNodeFeeByPlatformOwner) is started on the platform owner's node, signed by the platform owner's wallet on the setup's chain. Poll Get Node Transactions for it. For a setup that is not deployed yet the row is only saved, and the deploy picks it up. A change to categories alone does not start a push.

Required permission: fee:upsert

Request​

PUT /v2/admin/fees/nodes/{node_id}/setups/{setup_id}/platform-owner

Parameters​

NameTypeInDescription
node_idstringpathRequired. Node that owns the setup
setup_idstringpathRequired. Setup ID

Headers​

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

Body​

FieldTypeRequiredDescription
valueobjectYesThe nine rates. All nine leaves are required: tokenization.asset_tokenization, tokenization.tokenized_asset_sales, tokenization.management, secondary_market.buy_order, secondary_market.sell_order, secondary_market.otc_sale, lending.borrower, lending.lending, lending.liquidation
value.<group>.<leaf>.valuestringYesRate in percent, "0" to "100", at most one decimal (for example "2.5"). See Amounts and Percentages
categoriesarray or nullNoPer-asset-category overrides. An override on a parent category is applied to its leaf categories
categories[].idstringYesCategory ID (24-character hex)
categories[].valueobjectYesRates for this category, same shape as value

Example​

curl --request PUT \
--url '{{baseUrl}}/v2/admin/fees/nodes/6a4bef2b1e781b11c22e9707/setups/6a552db09c6088e126a4be87/platform-owner' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"value": {
"tokenization": {
"asset_tokenization": { "value": "2.1" },
"tokenized_asset_sales": { "value": "1.1" },
"management": { "value": "1.2" }
},
"secondary_market": {
"buy_order": { "value": "1.3" },
"sell_order": { "value": "1.4" },
"otc_sale": { "value": "1.5" }
},
"lending": {
"borrower": { "value": "1.6" },
"lending": { "value": "1.7" },
"liquidation": { "value": "1.8" }
}
},
"categories": null
}'

Response​

{
"id": "6a553c449c6088e126a4bea7",
"entity": 2,
"node_id": "6a4bef2b1e781b11c22e9707",
"setup_id": "6a552db09c6088e126a4be87",
"network_id": "6a4bf0a21e781b11c22e9712",
"value": {
"tokenization": {
"asset_tokenization": { "id": 0, "value": "2.1" },
"tokenized_asset_sales": { "id": 0, "value": "1.1" },
"management": { "id": 0, "value": "1.2" }
},
"secondary_market": {
"buy_order": { "id": 0, "value": "1.3" },
"sell_order": { "id": 0, "value": "1.4" },
"otc_sale": { "id": 0, "value": "1.5" }
},
"lending": {
"borrower": { "id": 0, "value": "1.6" },
"lending": { "id": 0, "value": "1.7" },
"liquidation": { "id": 0, "value": "1.8" }
}
},
"categories": null
}

Response Fields​

The saved fee row, in the same shape as Get Fee by ID.

FieldTypeDescription
idstringFee row ID
entityinteger2 (platform owner)
node_idstringThe node from the path
setup_idstringThe setup from the path
network_idstringThe setup's network
valueobjectThe saved rates. Each leaf is { "id": 0, "value": "<percent>" }
categoriesarray or nullThe saved per-category overrides, expanded to leaf categories (id, int_id, path, value)

Errors​

StatusCodeDescription
40010015Validation failed — see details. A malformed rate is reported here too
40010016node_id or setup_id is not a 24-character hex ID
40010001 (domain 2)Node not found, or the setup does not belong to the node
40010002 (domain 9)value does not contain all nine rates
40010001 (domain 4)A categories[].id does not exist
40310003 (domain 9)The key is not the platform owner node's
50010000Unexpected server error

See Errors for the error format and common codes.