Coverage Products and Policies
OmegaX coverage is modeled as three layered primitives:
- Health Plan (
Pool) - Coverage Product (
CoverageProduct) - Member Policy Position (
CoveragePolicy)
This separation keeps funding, trust policy, and membership policy at the pool level, while allowing multiple product offerings under shared pool liquidity.
Why this model
- A pool can serve multiple insurance offerings without duplicating liquidity accounts.
- Product templates can evolve (terms/schedule updates) without changing pool identity.
- Member policy positions remain deterministic and auditable on-chain.
Product template fields
CoverageProduct stores:
product_id_hashdisplay_namemetadata_uriterms_hashduration_secspremium_due_every_secspremium_grace_secspremium_amountactive
Issuance pathways
Two supported pathways map to separate instructions:
- Member subscribe (DeFi path)
subscribe_coverage_product_v2- Connected member wallet subscribes to a selected product and creates its own policy position.
- Operator issue/renew (RWA path)
issue_coverage_policy_from_product_v2- Pool authority issues or renews a member policy from a selected product.
Policy position semantics
- Policy PDA remains keyed by
pool + member. - Current protocol behavior is one policy position per member per pool.
- A policy position can be refreshed/reissued by authority through the operator issue path.
NFT linkage
CoveragePolicyPositionNft tracks optional NFT linkage (nft_mint, metadata_uri), but policy validity is anchored to the on-chain policy account and coverage schedule state.