====== 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.