====== 12.7 Establish or Update FX Contract State ======
[[fxdemo:03-part:12-fx-demo-logical-interaction-patterns:start | Go To FX Demo Logical Interaction Patterns ]]
The Establish or Update FX Contract State pattern determines and publishes the [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state|FX Contract State]] from validated and semantically interpreted FX transaction information.
The [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state_node|FX Contract State Node]] consumes [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_validation_result|FX Validation Results]], [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_semantic_assertion|FX Semantic Assertions]], and applicable transaction information. It applies contract state rules, determines the applicable [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state|FX Contract State]], records the transition context, and publishes the [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state|FX Contract State]].
The interaction belongs primarily to the [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_data_plane|Logical Data Plane]]. It also supports the [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_audit_and_provenance_plane|Logical Audit and Provenance Plane]] because contract state transitions require lineage, rule context, producing [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_node|Node]], timestamp, and [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] expectations.
**Table 12-6:** Establish or Update FX Contract State interaction pattern.
^ Element ^ FX logical treatment ^
| **Primary Runtime Plane** | [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_data_plane|Logical Data Plane]] |
| **Producing FX Node Role** | [[dido:99_annexes:annex-b-terms-and-definitions:c:contract_state_management_role|Contract State Management Role]] |
| **Consuming FX Node Role** | [[dido:99_annexes:annex-b-terms-and-definitions:c:cash-flow_computation_role|Cash-Flow Computation Role]], [[dido:99_annexes:annex-b-terms-and-definitions:p:policy_evaluation_role|Policy Evaluation Role]], [[dido:99_annexes:annex-b-terms-and-definitions:a:audit_recording_role|Audit Recording Role]], [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance_recording_role|Provenance Recording Role]] |
| **Primary endpoint** | [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state_endpoint|FX Contract State Endpoint]] |
| **Primary information** | [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state|FX Contract State]] |
| **Supporting information** | Validation result reference, semantic assertion reference, prior state, target state, transition rule, producing [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_node|Node]], timestamp |
| **Traceability expectation** | [[dido:99_annexes:annex-b-terms-and-definitions:f:fx_contract_state|FX Contract State]] traces to validation result, semantic assertion, transaction information, transition rule, producing [[dido:99_annexes:annex-b-terms-and-definitions:l:logical_node|Node]], and provenance reference |
| **Evidence expectation** | Contract state records support review of lifecycle transition, state basis, and downstream processing context |
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.