Capital Agent
Introduction
The SSIP uses concepts like MCR (Minimum Capacity Ratio), SCR(Solvency Capital Requirements) and MLR (Maximum Leverage Ratio) to determine the capacity to sell policies and provide insurance. To implement complex mechanism like these the Capital Agent contract has been created
The SCR is the amount of funds that are required to hold to ensure that the insurance company can meet its obligations to policyholders with some probability. In Uno Re SSIPs, we use SCR as our capital management standard to calculate the minimum required amount of funds set aside to pay all the potential claims considering all quantifiable risks. SCR is calculated per pool with the following factors/inputs:
All the active covers and capital staked on the SSIPs
All the outstanding claims
The potential incurred but not reported claims
The non-life premium & reserve, lapse and catastrophe risks
The potential operational risk
The SCR calculation runs on a daily basis. We will review and update it to on-chain only if there is a noticeable change in the required capital requirement.
We also use MCR(Minimum Capital Ratio) as the another capital management standard in unstaking and claiming process from SSIPs.
MCR is a factor similar to SCR and is used to determine the minimal capital required to be locked in the SSIPs to guarantee solvency of the risk pool to some arbitrary and high confidence level.
SCR is a capital requirement applied per every pool, while MCR represents the threshold to apply to the whole pool.
Contract
Add Pool
To add the newly deployed SSIP pool in Capital Agent contract's ledger the addPool
function is called.
Input Variables :
ssip : refers to the address of the SSIP pool being added
SSIP Staking
The Capital Agent contract keeps track of the total capital staked through each SSIP pool. When a user stakes into a SSIP Pool the SSIPStaking
function is called which updates the total capital variable.
Input Variables :
_stakingAmount : refers to the amount being staked into the staking pool
_stakingAmountInUSDT : refers to the amount being staked in terms of USDT in the pool
SSIP Withdraw
The Capital Agent contract keeps track of the total capital and respective capital staked through each SSIP pool. When a user stakes into a SSIP Pool the SSIPStaking
function is called which updates the total capital variable. For the withdraw request to be approved the below mentioned condition should be true after which only the withdraw request will pass :
Input Variables :
_withdrawAmount : refers to the amount being withdrawn into the staking pool
_withdrawAmountInUSDT : refers to the amount being withdrawn in terms of USDT in the pool
Add Policy
When a protocol address is added in Uno Re as a coverable/insurable asset, the addPolicy
function is called and stored in the Capital Agent contract.
Input Variables :
_policy : refers to the ERC721 based Sales Policy contract for which insurance support has been added in the protocol
Policy Sale
When a user buys a policy the policySale
function in the Capital Agent is called to check if the pool has enough capacity to provide insurance. The check for capacity is done according to the below mentioned requirement, when this requirement is passed it is then when the policySale will continue to be a successful purchase.
Input Variables :
_coverageAmount : refers to the amount being covered under the to be bought policy
Update Policy Status
A particular policy has a time duration associated with it which determine it's life and validity, once a particular policy expires the updatePolicyStatus
function is called which adjusts the Total Coverage amount provided by the Uno Re protocol in the Capital Agent contract
Input Variables :
_policyAddr : refers to the ERC721 address of the policy which has expired
_policyId : refers to the ID of the policy
Mark to Claim Policy
When admin is processing a claim the markToClaimPolicy
function is called which changes the policy status to expired and also changes the Total Coverage amount provided by the Uno Re protocol in the Capital Agent contract
Input Variables :
_policy : refers to the ERC721 address of the policy which has expired
_policyId : refers to the ID of the policy
Last updated