IPolicyManager
Interface for policy issuance and lifecycle management.
View deployed contract addresses in the Contract Addresses section.
The IPolicyManager is the central entry point for the insurance policy system. It handles policy issuance, modifications, expiration, and claims. It uses a unified purchase flow via the purchaseCoverage function.
Interface
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.20; import "./IPolicyNFT.sol"; import {Types} from "../libraries/helpers/Types.sol"; /** * @title IPolicyManager * @notice Interface for policy lifecycle orchestration, configuration, and cover purchase flows. * @dev Coordinates premium settings, policy activation state, and upgradeable control hooks. */ interface IPolicyManager { function policyNFT() external view returns (IPolicyNFT); function isPolicyActive(uint256 policyId) external view returns (bool); function configureGovernanceSettings(Types.PolicyGovernanceConfig calldata config) external; function configureYieldSettings(Types.PolicyYieldConfig calldata config) external; function settlePremiumForClaim(uint256 policyId) external returns (bool); function forceVoidPolicy(uint256 policyId, uint256 incidentBlock) external; function catPremiumBps() external view returns (uint16); function purchaseCoverage(Types.PurchaseParams memory params) external returns (uint256 policyId); function cancelCover(uint256 policyId) external; function forceInitialize() external; function upgradeToAndCall(address newImplementation, bytes calldata data) external; }
PurchaseParams Struct
The unified purchaseCoverage function uses a PurchaseParams struct:
| Field | Type | Description |
|---|---|---|
buyer | address | Address that will own the policy NFT |
poolId | uint256 | The underwriting pool providing coverage |
coverageAmount | uint256 | Maximum payout amount in case of claim |
agreedRateBps | uint256 | Annual premium rate in basis points |
premiumDeposit | uint256 | Upfront premium payment amount |
backingUnderwriter | address | Syndicate providing coverage capital |
duration | uint256 | Coverage period in seconds |
requiresUpfront | bool | Whether full premium must be paid upfront |
reservationKey | bytes32 | Unique key for capital reservation |
referralCode | bytes32 | Optional referral code for rewards |
vault | address | (Vault Cover) The ERC4626 vault being insured |
sharesToCover | uint256 | (Vault Cover) Number of vault shares to protect |
Policy Flow
Related Documentation
- Intent-Based Pricing - How quotes and premiums work
- Filing a Claim - Claim filing and payout process
- IIntentMatcher - The orderbook that calls
purchaseCoverage