Entity Dissolution: Before and After
This document demonstrates how the dissolution workflow solves the circular dependency problem.
Before: Impossible to Delete Entity
Scenario
Alice is the sole founder of "Food Cooperative" and wants to close it down.
Attempted Steps
Try to delete the entity directly:
DELETE /entities/entity:icn:cooperative:food-coopResult: ❌
400 Bad Request: "Cannot remove entity with active members"Try to remove herself as the last member:
DELETE /entities/entity:icn:cooperative:food-coop/members/entity:icn:individual:aliceResult: ❌
400 Bad Request: "Cannot remove the last founder. Transfer founder role to another member first."Circular deadlock:
- Can't delete entity → has members
- Can't remove last founder → would leave entity leaderless
- IMPOSSIBLE TO PROCEED 🔒
After: Dissolution Workflow
Scenario
Alice uses the new dissolution workflow to properly wind down the cooperative.
Step-by-Step Process
Step 1: Create Governance Proposal
POST /governance/proposals
Authorization: Bearer alice_token
{
"domain_id": "food-coop-domain",
"title": "Dissolve Food Cooperative",
"description": "Market conditions require wind-down of operations",
"payload": { "Membership": {} }
}
Result: ✅ Proposal created with ID proposal-123
Step 2: Vote on Proposal
# Alice and other stakeholders vote
POST /governance/proposals/proposal-123/votes
{
"vote": "yes",
"comment": "Agreed, orderly wind-down is necessary"
}
Result: ✅ Proposal approved after voting period
Step 3: Initiate Dissolution
POST /entities/entity:icn:cooperative:food-coop/dissolution
Authorization: Bearer alice_token
{
"proposal_id": "proposal-123",
"reason": "Approved by governance - market wind-down",
"waiting_period_seconds": 2592000 // 30 days
}
Result: ✅ Dissolution initiated
{
"entity_id": "entity:icn:cooperative:food-coop",
"status": "dissolving",
"initiated_at": 1706131200,
"completion_date": 1708723200,
"proposal_id": "proposal-123"
}
Step 4: Wind-Down Period (30 days)
During this period:
- ✅ Members are notified of dissolution
- ✅ Assets are distributed according to bylaws
- ✅ Accounts are settled
- ✅ Members gradually leave
- ✅ Final member removal is possible because entity is in
Dissolvingstate
# Members leave voluntarily or are removed
DELETE /entities/entity:icn:cooperative:food-coop/members/entity:icn:individual:bob
DELETE /entities/entity:icn:cooperative:food-coop/members/entity:icn:individual:carol
# ... until only Alice remains
DELETE /entities/entity:icn:cooperative:food-coop/members/entity:icn:individual:alice
Result: ✅ All members removed successfully
Step 5: Complete Dissolution (after 30 days)
POST /entities/entity:icn:cooperative:food-coop/dissolution/complete
Authorization: Bearer alice_token
Result: ✅ 204 No Content - Entity successfully dissolved
Audit Trail
Complete record of dissolution:
[
{
"operation": "DissolutionInitiated",
"proposal_id": "proposal-123",
"performed_by": "entity:icn:individual:alice",
"performed_at": 1706131200,
"reason": "Approved by governance - market wind-down"
},
{
"operation": "MemberRemoved",
"member_id": "entity:icn:individual:bob",
"performed_by": "entity:icn:individual:alice",
"performed_at": 1706735000
},
{
"operation": "MemberRemoved",
"member_id": "entity:icn:individual:carol",
"performed_by": "entity:icn:individual:alice",
"performed_at": 1707339600
},
{
"operation": "MemberRemoved",
"member_id": "entity:icn:individual:alice",
"performed_by": "entity:icn:individual:alice",
"performed_at": 1708722000,
"reason": "Self-removal"
},
{
"operation": "DissolutionCompleted",
"proposal_id": "proposal-123",
"performed_by": "entity:icn:individual:alice",
"performed_at": 1708723200
}
]
Key Differences
| Aspect | Before | After |
|---|---|---|
| Process | Single-step deletion | Multi-step dissolution |
| Governance | No approval needed | Requires proposal approval |
| Last Founder | Cannot be removed | Can be removed during dissolution |
| Member Removal | Blocked by circular dependency | Orderly wind-down |
| Audit Trail | Single "Deleted" record | Complete dissolution history |
| Notice Period | Immediate (if possible) | 30-day mandatory waiting period |
| Cancellation | N/A (couldn't start) | Can cancel before completion |
| Asset Distribution | No time to handle | 30 days to distribute assets |
Benefits of New Workflow
- Solves Circular Dependency: Entities in
Dissolvingstate can have members removed, including the last founder - Governance Compliance: Requires democratic approval for major organizational changes
- Orderly Wind-Down: 30-day period allows proper handling of assets, accounts, and obligations
- Transparency: Complete audit trail of all dissolution steps
- Flexibility: Can be cancelled if circumstances change
- Safety: Multiple validation checkpoints prevent accidental deletion
- Member Protection: Ensures all stakeholders are notified and have time to prepare
Common Scenarios
Scenario 1: Quick Test Cleanup (Development)
# Short waiting period for development
POST /entities/:id/dissolution
{
"proposal_id": "test-proposal",
"reason": "Test cleanup",
"waiting_period_seconds": 1 // 1 second
}
# Wait 1 second, remove members, complete
POST /entities/:id/dissolution/complete
Scenario 2: Bankruptcy
# Standard 30-day wind-down
POST /entities/:id/dissolution
{
"proposal_id": "bankruptcy-proposal",
"reason": "Chapter 7 bankruptcy filing",
"waiting_period_seconds": 2592000 // 30 days
}
# During 30 days:
# - Liquidate assets
# - Pay creditors
# - Distribute remaining funds
# - Members exit
# After 30 days:
POST /entities/:id/dissolution/complete
Scenario 3: Merger
# Dissolution due to merger
POST /entities/old-coop/dissolution
{
"proposal_id": "merger-proposal",
"reason": "Merging into Larger Cooperative Federation",
"waiting_period_seconds": 2592000
}
# During 30 days:
# - Transfer members to new entity
# - Transfer assets
# - Close accounts
# - Complete legal paperwork
# After transfer:
POST /entities/old-coop/dissolution/complete
Scenario 4: Changed Circumstances
# Start dissolution
POST /entities/:id/dissolution
{
"proposal_id": "closure-proposal",
"reason": "Market challenges"
}
# Market improves, members vote to continue
DELETE /entities/:id/dissolution // Cancel
# Entity reverts to Active status
Conclusion
The dissolution workflow transforms an impossible task into a safe, governed, auditable process that:
- ✅ Solves the circular dependency problem
- ✅ Protects stakeholders with mandatory waiting periods
- ✅ Ensures democratic governance through proposal requirements
- ✅ Maintains complete audit trails for compliance
- ✅ Provides flexibility through cancellation capability
- ✅ Enables orderly wind-down of cooperatives
Result: Entities can now be properly dissolved when needed, while maintaining the protections that prevent accidental deletion.