Groups
Propose updating groups
[Admin Only] Creates a proposal to update existing groups.
Note: Name changes are applied immediately upon request submission and do not require proposal execution. Only member updates require the full proposal workflow. Only admin API members can make requests to this endpoint.
POST
/
groups
/
proposals
/
update
cURL
curl --request POST \
--url https://api.onchainden.com/api/v1/groups/proposals/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"items": [
{
"id": "grp_123",
"name": "Finance & Accounting",
"memberUpdates": [
{
"action": "addMember",
"id": "mem_3"
},
{
"action": "removeMember",
"id": "mem_2"
}
]
}
]
}
'const client = new DenClient({ apiKey: 'ck_live_...' });
const proposal = await client.proposeGroupUpdate({
items: [
{
id: 'grp_123',
name: 'Finance & Accounting',
memberUpdates: [
{ action: 'addMember', id: 'mem_3' },
{ action: 'removeMember', id: 'mem_2' },
],
},
],
});
{
"data": {
"id": "prop_grp_update_123",
"resourceType": "groups",
"action": "update",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"items": [
{
"id": "grp_123",
"name": "Finance & Accounting",
"members": [
{
"id": "mem_1",
"name": "Alice",
"type": "user",
"walletAddress": "0xabc..."
},
{
"id": "mem_3",
"name": "Cara",
"type": "user",
"walletAddress": "0xdef..."
}
],
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-02T00:00:00.000Z"
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "group",
"id": "grp_123",
"uri": "/api/v1/groups/grp_123"
}
]
}
}
}Authorizations
API key authentication. Include your API key in the Authorization header.
Headers
Idempotency key for safely retrying mutation requests.
Body
application/json
List of group updates
Show child attributes
Show child attributes
Response
Group update proposal created
Show child attributes
Show child attributes
Example:
{
"id": "prop_grp_update_123",
"resourceType": "groups",
"action": "update",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"items": [
{
"id": "grp_123",
"name": "Finance & Accounting",
"members": [
{
"id": "mem_1",
"name": "Alice",
"type": "user",
"walletAddress": "0xabc..."
},
{
"id": "mem_3",
"name": "Cara",
"type": "user",
"walletAddress": "0xdef..."
}
],
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-02T00:00:00.000Z"
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "group",
"id": "grp_123",
"uri": "/api/v1/groups/grp_123"
}
]
}
}
⌘I
cURL
curl --request POST \
--url https://api.onchainden.com/api/v1/groups/proposals/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Idempotency-Key: <x-idempotency-key>' \
--data '
{
"items": [
{
"id": "grp_123",
"name": "Finance & Accounting",
"memberUpdates": [
{
"action": "addMember",
"id": "mem_3"
},
{
"action": "removeMember",
"id": "mem_2"
}
]
}
]
}
'const client = new DenClient({ apiKey: 'ck_live_...' });
const proposal = await client.proposeGroupUpdate({
items: [
{
id: 'grp_123',
name: 'Finance & Accounting',
memberUpdates: [
{ action: 'addMember', id: 'mem_3' },
{ action: 'removeMember', id: 'mem_2' },
],
},
],
});
{
"data": {
"id": "prop_grp_update_123",
"resourceType": "groups",
"action": "update",
"signatureStatus": "approvalReady",
"executionStatus": "completed",
"threshold": 2,
"approvals": [],
"rejections": [],
"createdAt": "2026-01-18T00:00:00.000Z",
"expiresAt": "2026-01-25T00:00:00.000Z",
"data": {
"items": [
{
"id": "grp_123",
"name": "Finance & Accounting",
"members": [
{
"id": "mem_1",
"name": "Alice",
"type": "user",
"walletAddress": "0xabc..."
},
{
"id": "mem_3",
"name": "Cara",
"type": "user",
"walletAddress": "0xdef..."
}
],
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-02T00:00:00.000Z"
}
]
},
"result": {
"resolution": "approved",
"resources": [
{
"type": "group",
"id": "grp_123",
"uri": "/api/v1/groups/grp_123"
}
]
}
}
}