object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
schemaVersion |
Yes | Constant treasury-reconciliation-draft-v1 |
— |
organizationId |
Yes | string |
Min length: 1 |
id |
Yes | string |
Pattern: ^reconciliation_[0-9a-f]{32}$ |
sequence |
Yes | string |
Pattern: ^[1-9][0-9]{0,17}$ |
resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
state |
Yes | string |
Allowed: DRAFT, ACKNOWLEDGED |
candidate |
Yes | object |
Additional properties rejected |
candidate.schemaVersion |
Yes | Constant treasury-ledger-custody-reconciliation-candidate-v1 |
— |
candidate.organizationId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.sourceCutoff |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
candidate.status |
Yes | Constant REVIEW_CANDIDATE |
— |
candidate.mappings |
Yes | Array of object |
Min items: 1; Max items: 256 |
candidate.mappings[].ledger |
Yes | object |
Additional properties rejected |
candidate.mappings[].ledger.recordId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].ledger.resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].ledger.artifactHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].custody |
Yes | object |
Additional properties rejected |
candidate.mappings[].custody.evidenceId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].custody.resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].capitalContainerId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].declaredCustodyLocationId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].declaredSource |
Yes | object |
Additional properties rejected |
candidate.mappings[].declaredSource.kind |
Yes | string |
Allowed: SAFE, VAULT, EXTERNAL_MANAGER |
candidate.mappings[].declaredSource.id |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].unit |
Yes | object |
Additional properties rejected |
candidate.mappings[].unit.chainId |
Yes | integer |
Maximum: 9007199254740991; Exclusive minimum: 0 |
candidate.mappings[].unit.genesisHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].unit.asset |
Yes | string |
Pattern: ^0x[0-9a-f]{40}$ |
candidate.mappings[].unit.decimals |
Yes | integer |
Minimum: 0; Maximum: 36 |
candidate.mappings[].custodyAccount |
Yes | string |
Pattern: ^0x[0-9a-f]{40}$ |
candidate.mappings[].relationship |
Yes | object |
Additional properties rejected |
candidate.mappings[].relationship.id |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].relationship.resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].relationship.evidenceHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].projectId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.mappings[].block |
Yes | object |
Additional properties rejected |
candidate.mappings[].block.number |
Yes | string |
Pattern: ^(0|[1-9][0-9]{0,77})$ |
candidate.mappings[].block.hash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.mappings[].block.timestamp |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
candidate.mappings[].ledgerAmountAtomic |
Yes | string |
Pattern: ^(0|[1-9][0-9]{0,77})$ |
candidate.mappings[].observedCustodyAmountAtomic |
Yes | string |
Pattern: ^(0|[1-9][0-9]{0,77})$ |
candidate.mappings[].unallocatedCustodySurplusAtomic |
Yes | string |
Pattern: ^(0|[1-9][0-9]{0,77})$ |
candidate.mappings[].ledgerState |
Yes | string |
Allowed: AVAILABLE, DEPLOYED, LOCKED, AT_RISK, FEE_GENERATING |
candidate.mappings[].committedQuoteValuation |
Yes | string |
Pattern: ^(0|[1-9][0-9]{0,77})$ |
candidate.mappings[].obligationIds |
Yes | Array of string |
Max items: 256 |
candidate.mappings[].disposition |
Yes | Constant PROPOSED_MAPPING_REQUIRES_ADMISSION |
— |
candidate.sourceBindings |
Yes | object |
Additional properties rejected |
candidate.sourceBindings.ledger |
Yes | Array of object |
Min items: 1; Max items: 256 |
candidate.sourceBindings.ledger[].recordId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.sourceBindings.ledger[].resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.sourceBindings.ledger[].artifactHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.sourceBindings.custody |
Yes | Array of object |
Min items: 1; Max items: 256 |
candidate.sourceBindings.custody[].evidenceId |
Yes | string |
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9:_-]{2,159}$ |
candidate.sourceBindings.custody[].resourceVersion |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.sourceHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.candidateHash |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.ledgerConservation |
Yes | object |
Additional properties rejected |
candidate.ledgerConservation.scope |
Yes | Constant SUPPLIED_IMMUTABLE_ENTRIES_ONLY |
— |
candidate.ledgerConservation.ledgerVersion |
Yes | string |
Allowed: treasury-ledger-v1, treasury-ledger-v2 |
candidate.ledgerConservation.conserved |
Yes | Constant true |
— |
candidate.ledgerConservation.commitment |
Yes | string |
Pattern: ^0x[0-9a-f]{64}$ |
candidate.omittedLedgerEntryIds |
Yes | Array of string |
Max items: 256 |
candidate.omittedCustodyEvidenceIds |
Yes | Array of string |
Max items: 256 |
candidate.limitations |
Yes | Array of Not specified | — |
candidate.spendability |
Yes | Constant NOT_ESTABLISHED |
— |
candidate.expenseCoverage |
Yes | Constant UNKNOWN |
— |
candidate.financialAuthority |
Yes | Constant false |
— |
createdBy |
Yes | string |
Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ |
createdAt |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
recordedAt |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
acknowledgment |
Yes | At least one of: object; null |
— |
acknowledgment.anyOf[1].recordedBy |
Yes | string |
Format: uuid; Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ |
acknowledgment.anyOf[1].recordedAt |
Yes | string |
Format: date-time; Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
spendability |
Yes | Constant NOT_ESTABLISHED |
— |
financialAuthority |
Yes | Constant false |
— |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Exact definition: #/components/schemas/SavedTreasuryReconciliation in the OpenAPI contract.