IPolicyNFT
Interface for the tokenized insurance policy (ERC721).
View deployed contract addresses in the Contract Addresses section.
The IPolicyNFT is the ERC721 token representing an active insurance policy. It stores metadata about the coverage, premium deposits, and expiration.
Interface
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.20; import {Types} from "../libraries/helpers/Types.sol"; /** * @title IPolicyNFT * @notice Interface for NFT-backed policy state, minting, and mutation operations. */ interface IPolicyNFT { event PolicyMinted(address indexed owner, uint256 indexed policyId); event PolicyUpdated(uint256 indexed policyId); event PolicyBurned(uint256 indexed policyId); function mint(Types.PolicyMintParams memory params) external returns (uint256 policyId); // NEW: A single function to finalize multiple matured increases at once. function finalizeIncreases(uint256 policyId, uint256 totalAmountToAdd) external; function initializeVaultCover( uint256 policyId, address vault, uint256 sharesInsured, uint256 insuredValueUSDC, uint256 pricePerShareSnapshot ) external; function burn(uint256 policyId) external; function ownerOf(uint256 policyId) external view returns (address); function getPolicy(uint256 policyId) external view returns (Types.Policy memory); function updatePremiumAccount(uint256 policyId, uint128 newDeposit, uint128 newDrainTime) external; function reduceCoverage(uint256 id, uint256 reductionAmount) external; function reduceVaultCoverShares(uint256 id, uint256 sharesReduction) external; function setPolicyVoided(uint256 policyId, bool voided) external; function initializeIntentPolicy( uint256 policyId, Types.IntentPolicyData memory data, uint16 cancellationPenaltyBps ) external; function extendIntentEndTime(uint256 policyId, uint64 newEndTime) external; }
Related Documentation
- IPolicyManager - Creates and manages policies
- Buying Cover - How policies work