T003-sax_synthetic.component.cspec
1 # T003-sax_synthetic.component.cspec 2 3 metadata: 4 id: T003 5 name: sax_synthetic 6 version: 1.0.0 7 domain: tokens 8 stability: high_change 9 updated: 2026-01-07 10 cascade_priority: 20 11 roles: 12 primary: [Arch, Dev] 13 review: [Security] 14 expertise: 15 required: [tokenomics, cross_chain] 16 helpful: [rust, ipc] 17 context_tags: [sax, lock, unlock, attestation, synthetic] 18 19 dependencies: 20 upstream: 21 - T001 # ax_token (backing) 22 - R005 # cross_chain_attestation 23 downstream: [] 24 25 interface: 26 types_ref: _registry/types.cspec 27 types: 28 sAX: synthetic_ax, decimals:4, backing:1:1_locked_AX, lifetime:ephemeral, chain:DELTA 29 LOCK: lock_for_sax, ax_to_pool, triggers:sax_mint 30 UNLOCK: unlock_ax, sax_burn, releases:ax_from_pool 31 functions: 32 lock_for_sax: 33 chain: ALPHA 34 input: amount 35 output: locked_ax_pool 36 triggers: cross_chain_attestation 37 unlock_ax: 38 chain: DELTA 39 input: amount 40 output: sax_burned 41 triggers: cross_chain_attestation 42 events: 43 - sax_minted 44 - sax_burned 45 - ax_locked 46 - ax_released 47 48 spec: 49 sax: 50 purpose: ax_representation_on_delta 51 52 properties: 53 backing: 1:1_locked_AX 54 lifetime: ephemeral 55 decimals: 4 (matches_AX) 56 57 mint_flow: 58 1: user.lock_for_sax(amount) on ALPHA 59 2: AX -> locked_ax_pool 60 3: ALPHA_block_finalizes 61 4: cross_chain_attestation -> DELTA 62 5: DELTA_mints_sAX_to_user 63 64 burn_flow: 65 1: user.unlock_ax(amount) on DELTA 66 2: sAX_burned 67 3: DELTA_block_finalizes 68 4: cross_chain_attestation -> ALPHA 69 5: ALPHA_releases_AX_to_user 70 71 rationale: 72 - ALPHA_utxo incompatible with DELTA_account_model 73 - clean_separation_maintains_1:1_guarantee 74 75 changelog: 76 - version: 1.0.0 77 date: 2026-01-07 78 type: initial 79 description: "Migrated from tokenomics.cspec" 80 breaking: false