Policies
Propose adding policies
[Admin Only] Creates a proposal to add new policies to the organization. Only admin API members can make requests to this endpoint.
POST
/
policies
/
proposals
/
add
cURL
curl --request POST \
--url https://api.onchainden.com/api/v1/policies/proposals/add \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"policies": [
{
"name": "Small USDC Transfers",
"type": "AUTO_APPROVAL",
"transactionType": "TOKEN_TRANSFER",
"networkId": 1,
"accountIds": [
"acc_1"
],
"initiatorSetting": null,
"approverSetting": null,
"limitation": null,
"tokenTransferCondition": {
"tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amountThreshold": "1000000000",
"destinationAddresses": []
}
}
]
}
'const client = new DenClient({ apiKey: 'ck_live_...' });
const proposal = await client.createUpdatePoliciesProposal({
changes: [
{
action: 'add',
data: {
name: 'Small USDC Transfers',
type: 'AUTO_APPROVAL',
transactionType: 'TOKEN_TRANSFER',
networkId: 1,
accountIds: ['acc_1'],
initiatorSetting: null,
approverSetting: null,
limitation: null,
tokenTransferCondition: {
tokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
amountThreshold: '1000000000',
destinationAddresses: [],
},
},
},
],
});
{
"data": {
"id": "prop_pol_add_123",
"resourceType": "policies",
"action": "create",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"policies": [
{
"name": "Small USDC Transfers",
"type": "AUTO_APPROVAL",
"transactionType": "TOKEN_TRANSFER",
"networkId": 1,
"accountIds": [
"acc_1"
],
"initiatorSetting": null,
"approverSetting": null,
"limitation": null,
"tokenTransferCondition": {
"tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amountThreshold": "1000000000",
"destinationAddresses": []
}
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "policy",
"id": "pol_new1",
"uri": "/api/v1/policies/pol_new1"
}
]
}
}
}Authorizations
API key authentication. Include your API key in the Authorization header.
Headers
Idempotency key for safely retrying mutation requests.
Body
application/json
policies
(Token Transfer · object | Contract Interaction · object | Any Transaction · object)[]
required
List of new policies to add (must not include id)
- Token Transfer
- Contract Interaction
- Any Transaction
Show child attributes
Show child attributes
Response
Policy add proposal created
Show child attributes
Show child attributes
Example:
{
"id": "prop_pol_add_123",
"resourceType": "policies",
"action": "create",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"policies": [
{
"name": "Small USDC Transfers",
"type": "AUTO_APPROVAL",
"transactionType": "TOKEN_TRANSFER",
"networkId": 1,
"accountIds": ["acc_1"],
"initiatorSetting": null,
"approverSetting": null,
"limitation": null,
"tokenTransferCondition": {
"tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amountThreshold": "1000000000",
"destinationAddresses": []
}
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "policy",
"id": "pol_new1",
"uri": "/api/v1/policies/pol_new1"
}
]
}
}
⌘I
cURL
curl --request POST \
--url https://api.onchainden.com/api/v1/policies/proposals/add \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"policies": [
{
"name": "Small USDC Transfers",
"type": "AUTO_APPROVAL",
"transactionType": "TOKEN_TRANSFER",
"networkId": 1,
"accountIds": [
"acc_1"
],
"initiatorSetting": null,
"approverSetting": null,
"limitation": null,
"tokenTransferCondition": {
"tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amountThreshold": "1000000000",
"destinationAddresses": []
}
}
]
}
'const client = new DenClient({ apiKey: 'ck_live_...' });
const proposal = await client.createUpdatePoliciesProposal({
changes: [
{
action: 'add',
data: {
name: 'Small USDC Transfers',
type: 'AUTO_APPROVAL',
transactionType: 'TOKEN_TRANSFER',
networkId: 1,
accountIds: ['acc_1'],
initiatorSetting: null,
approverSetting: null,
limitation: null,
tokenTransferCondition: {
tokenAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
amountThreshold: '1000000000',
destinationAddresses: [],
},
},
},
],
});
{
"data": {
"id": "prop_pol_add_123",
"resourceType": "policies",
"action": "create",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"policies": [
{
"name": "Small USDC Transfers",
"type": "AUTO_APPROVAL",
"transactionType": "TOKEN_TRANSFER",
"networkId": 1,
"accountIds": [
"acc_1"
],
"initiatorSetting": null,
"approverSetting": null,
"limitation": null,
"tokenTransferCondition": {
"tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amountThreshold": "1000000000",
"destinationAddresses": []
}
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "policy",
"id": "pol_new1",
"uri": "/api/v1/policies/pol_new1"
}
]
}
}
}