Cover Contracts
1. Buy Cover Flow
2. Product Management Flow
Actions
Quick Summary:
- Members receive a Cover NFT as proof when purchasing cover
- AB Members manage products
1. Member Actions
- Buy Cover
(1a) Member calls
buyCover
on Cover with:- Product ID
- Cover amount
- Cover period
- Payment asset
- Cover asset
(1b) Cover validates product with CoverProducts
(1c) Cover mints NFT representing cover
- issues Cover NFT to buyer (1d) Cover processes payment via Pool
2. Advisory Board Actions
-
Product Configuration (1) AB Member calls
setProducts
on CoverProducts to:- Add new products (
productId = uint256.max
) - Update existing products
- Set initial price ratios
- Set capacity reduction ratios
- Configure allowed staking pools
(2) AB Member calls
setProductTypes
on CoverProducts to:- Define product types (
productTypeId = uint256.max
) - Set grace periods
- Set product type names
- Update product type metadata
(3) AB Member calls
setProductsMetadata
to:- Update product IPFS metadata
- Update product type IPFS metadata
- Add new products (
Notes
- Cover NFTs represent ownership of cover policies
- Products must be configured before they can be purchased
- Cover periods have minimum (28 days) and maximum (365 days) durations
- Products can be deprecated which prevents new cover purchases
- Products can be restricted to specific staking pools
- All contracts fetch latest addresses from NXMaster Registry
- Product metadata is stored on IPFS with timestamps
- Initial price ratio must be above product minimum price
Registry Dependencies
All contracts fetch latest contract addresses from NXMaster:
- CoverProducts: P1 (Pool), CO (Cover), MR (MemberRoles), SP (StakingProducts)
- Cover: P1 (Pool), TC (TokenController), MR (MemberRoles), CP (CoverProducts)
- CoverNFT: Operator address