Skip to main content

Coverage Products and Policies

OmegaX coverage is modeled as three layered primitives:

  1. Health Plan (Pool)
  2. Coverage Product (CoverageProduct)
  3. 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_hash
  • display_name
  • metadata_uri
  • terms_hash
  • duration_secs
  • premium_due_every_secs
  • premium_grace_secs
  • premium_amount
  • active

Issuance pathways

Two supported pathways map to separate instructions:

  1. Member subscribe (DeFi path)
    • subscribe_coverage_product_v2
    • Connected member wallet subscribes to a selected product and creates its own policy position.
  2. 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.