Messages
In this section we describe the processing of the exchange messages and the corresponding updates to the state. All created/modified state objects specified by each message are defined within the state section.
Msg/CreateInsuranceFund
MsgCreateInsuranceFund defines a message to create an insurance fund for a derivative market.
// MsgCreateInsuranceFund a message to create an insurance fund for a derivative market.
message MsgCreateInsuranceFund {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// Creator of the insurance fund.
string sender = 1;
// Ticker for the derivative market.
string ticker = 2;
// Coin denom to use for the market quote denom
string quote_denom = 3;
// Oracle base currency
string oracle_base = 4;
// Oracle quote currency
string oracle_quote = 5;
// Oracle type
injective.oracle.v1beta1.OracleType oracle_type = 6;
// Expiration time of the market. Should be -1 for perpetual markets.
int64 expiry = 7;
// Initial deposit of the insurance fund
cosmos.base.v1beta1.Coin initial_deposit = 8 [(gogoproto.nullable) = false];
}
Fields description
Sender field describes the creator of an insurance fund .
Ticker, QuoteDenom, OracleBase, OracleQuote, OracleType, Expiry fields describe the derivative market info
that the insurance fund corresponds to.
InitialDeposit specifies the initial deposit amount used to underwrite the insurance fund.
Disclaimer: When creating an insurance fund a small portion of shares (1%) will be reserved by the fund itself (protocol owned liquidity). A value of 1 USD is recommended as first subscription.
Motivation behind this feature is to avoid potential rounding issues when underwriting to a fund. For example, without having protocol owned liquidity, if the original fund creator would take out most of their shares leaving but a small amount, the value of the share token could diverge drastically from the original value. The next underwriter would then have to provide a much larger deposit despite gaining the same amount of shares.
Msg/Underwrite
MsgUnderwrite defines a message to underwrite an insurance fund
// MsgUnderwrite defines a message for depositing coins to underwrite an insurance fund
message MsgUnderwrite {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// Address of the underwriter.
string sender = 1;
// MarketID of the insurance fund.
string market_id = 2;
// Amount of quote_denom to underwrite the insurance fund.
cosmos.base.v1beta1.Coin deposit = 3 [(gogoproto.nullable) = false];
}
Fields description
Sender field describes the underwriter of an insurance fund .
MarketId field describes the derivative market id to the insurance fund.
Deposit field describes the deposit amount to be added on the insurance fund.
Msg/RequestRedemption
MsgRequestRedemption defines a message to request redemption from the insurance fund.
// MsgRequestRedemption defines a message for requesting a redemption of the sender's insurance fund tokens
message MsgRequestRedemption {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// Address of the underwriter requesting a redemption.
string sender = 1;
// MarketID of the insurance fund.
string market_id = 2;
// Insurance fund share token amount to be redeemed.
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false];
}
Fields description
Sender field describes the redemption requester of an insurance fund .
MarketId field describes the derivative market id associated to the insurance fund.
Amount field describes the share token amount to be redeemed.
Last modified on April 3, 2026