Skip to main content

Governance Proposals

Proposal/SpotMarketParamUpdate

SpotMarketParamUpdateProposal defines an SDK message to propose an update of spot market params.

type SpotMarketParamUpdateProposal struct {
Title string
Description string
MarketId string
MakerFeeRate *sdk.Dec
TakerFeeRate *sdk.Dec
RelayerFeeShareRate *sdk.Dec
MinPriceTickSize *sdk.Dec
MinQuantityTickSize *sdk.Dec
MinNotional *sdk.Dec
Status MarketStatus
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • MarketId describes the id of the market to change params.
  • MakerFeeRate describes the target fee rate for makers.
  • TakerFeeRate describes the target fee rate for takers.
  • RelayerFeeShareRate describes the relayer fee share rate.
  • MinPriceTickSize defines the minimum tick size of the order's price.
  • MinQuantityTickSize defines the minimum tick size of the order's quantity.
  • Status describes the target status of the market.

Proposal/ExchangeEnable

ExchangeEnableProposal defines a message to propose enable of specific exchange type.

type ExchangeEnableProposal struct {
Title string
Description string
ExchangeType ExchangeType
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • ExchangeType describes the type of exchange, spot or derivatives.

Proposal/BatchExchangeModification

BatchExchangeModificationProposal defines a message to batch multiple proposals in the exchange module.

type BatchExchangeModificationProposal struct {
Title string
Description string
SpotMarketParamUpdateProposal []*SpotMarketParamUpdateProposal
DerivativeMarketParamUpdateProposal []*DerivativeMarketParamUpdateProposal
SpotMarketLaunchProposal []*SpotMarketLaunchProposal
PerpetualMarketLaunchProposal []*PerpetualMarketLaunchProposal
ExpiryFuturesMarketLaunchProposal []*ExpiryFuturesMarketLaunchProposal
TradingRewardCampaignUpdateProposal *TradingRewardCampaignUpdateProposal
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • SpotMarketParamUpdateProposal describes the SpotMarketParamUpdateProposal.
  • DerivativeMarketParamUpdateProposal describes the DerivativeMarketParamUpdateProposal.
  • SpotMarketLaunchProposal describes the SpotMarketLaunchProposal.
  • PerpetualMarketLaunchProposal describes the PerpetualMarketLaunchProposal.
  • ExpiryFuturesMarketLaunchProposal describes the ExpiryFuturesMarketLaunchProposal.
  • TradingRewardCampaignUpdateProposal describes the TradingRewardCampaignUpdateProposal.

Proposal/SpotMarketLaunch

SpotMarketLaunchProposal defines an SDK message for proposing a new spot market through governance.

type SpotMarketLaunchProposal struct {
Title string
Description string
Ticker string
BaseDenom string
QuoteDenom string
MinPriceTickSize sdk.Dec
MinQuantityTickSize sdk.Dec
MinNotional sdk.Dec
MakerFeeRate sdk.Dec
TakerFeeRate sdk.Dec
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • Ticker describes the ticker for the spot market.
  • BaseDenom specifies the type of coin to use as the base currency.
  • QuoteDenom specifies the type of coin to use as the quote currency.
  • MinPriceTickSize defines the minimum tick size of the order's price.
  • MinQuantityTickSize defines the minimum tick size of the order's quantity.
  • MakerFeeRate field describes the trade fee rate for makers on the derivative market.
  • TakerFeeRate field describes the trade fee rate for takers on the derivative market.

Proposal/PerpetualMarketLaunch

PerpetualMarketLaunchProposal defines an SDK message for proposing a new perpetual futures market through governance.

type PerpetualMarketLaunchProposal struct {
Title string
Description string
Ticker string
QuoteDenom string
OracleBase string
OracleQuote string
OracleScaleFactor uint32
OracleType types1.OracleType
InitialMarginRatio sdk.Dec
MaintenanceMarginRatio sdk.Dec
MakerFeeRate sdk.Dec
TakerFeeRate sdk.Dec
MinPriceTickSize sdk.Dec
MinQuantityTickSize sdk.Dec
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • Ticker field describes the ticker for the derivative market.
  • QuoteDenom field describes the type of coin to use as the base currency.
  • OracleBase field describes the oracle base currency.
  • OracleQuote field describes the oracle quote currency.
  • OracleScaleFactor field describes the scale factor for oracle prices.
  • OracleType field describes the oracle type.
  • MakerFeeRate field describes the trade fee rate for makers on the derivative market.
  • TakerFeeRate field describes the trade fee rate for takers on the derivative market.
  • InitialMarginRatio field describes the initial margin ratio for the derivative market.
  • MaintenanceMarginRatio field describes the maintenance margin ratio for the derivative market.
  • MinPriceTickSize field describes the minimum tick size of the order's price and margin.
  • MinQuantityTickSize field describes the minimum tick size of the order's quantity.

Expiry futures market launch proposal

// ExpiryFuturesMarketLaunchProposal defines an SDK message for proposing a new expiry futures market through governance
type ExpiryFuturesMarketLaunchProposal struct {
Title string
Description string
// Ticker for the derivative market.
Ticker string
// type of coin to use as the quote currency
QuoteDenom string
// Oracle base currency
OracleBase string
// Oracle quote currency
OracleQuote string
// Scale factor for oracle prices.
OracleScaleFactor uint32
// Oracle type
OracleType types1.OracleType
// Expiration time of the market
Expiry int64
// initial_margin_ratio defines the initial margin ratio for the derivative market
InitialMarginRatio sdk.Dec
// maintenance_margin_ratio defines the maintenance margin ratio for the derivative market
MaintenanceMarginRatio sdk.Dec
// maker_fee_rate defines the exchange trade fee for makers for the derivative market
MakerFeeRate sdk.Dec
// taker_fee_rate defines the exchange trade fee for takers for the derivative market
TakerFeeRate sdk.Dec
// min_price_tick_size defines the minimum tick size of the order's price and margin
MinPriceTickSize sdk.Dec
// min_quantity_tick_size defines the minimum tick size of the order's quantity
MinQuantityTickSize sdk.Dec
// min_notional defines the minimum notional (in quote asset) required for orders in the market
MinNotional sdk.Dec
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • Ticker field describes the ticker for the derivative market.
  • QuoteDenom field describes the type of coin to use as the quote currency.
  • OracleBase field describes the oracle base currency.
  • OracleQuote field describes the oracle quote currency.
  • OracleScaleFactor field describes the scale factor for oracle prices.
  • OracleType field describes the oracle type.
  • Expiry field describes the expiration time of the market.
  • MakerFeeRate field describes the trade fee rate for makers on the derivative market.
  • TakerFeeRate field describes the trade fee rate for takers on the derivative market.
  • InitialMarginRatio field describes the initial margin ratio for the derivative market.
  • MaintenanceMarginRatio field describes the maintenance margin ratio for the derivative market.
  • MinPriceTickSize field describes the minimum tick size of the order's price and margin.
  • MinQuantityTickSize field describes the minimum tick size of the order's quantity.

Binary options market launch proposal

type BinaryOptionsMarketLaunchProposal struct {
Title string
Description string
// Ticker for the derivative contract.
Ticker string
// Oracle symbol
OracleSymbol string
// Oracle Provider
OracleProvider string
// Oracle type
OracleType types1.OracleType
// Scale factor for oracle prices.
OracleScaleFactor uint32
// expiration timestamp
ExpirationTimestamp int64
// expiration timestamp
SettlementTimestamp int64
// admin of the market
Admin string
// Address of the quote currency denomination for the binary options contract
QuoteDenom string
// maker_fee_rate defines the maker fee rate of a binary options market
MakerFeeRate sdk.Dec
// taker_fee_rate defines the taker fee rate of a derivative market
TakerFeeRate sdk.Dec
// min_price_tick_size defines the minimum tick size that the price and margin required for orders in the market
MinPriceTickSize sdk.Dec
// min_quantity_tick_size defines the minimum tick size of the quantity required for orders in the market
MinQuantityTickSize sdk.Dec
}

Binary options market param update

type BinaryOptionsMarketParamUpdateProposal struct {
Title string
Description string
MarketId string
// maker_fee_rate defines the exchange trade fee for makers for the derivative market
MakerFeeRate *sdk.Dec
// taker_fee_rate defines the exchange trade fee for takers for the derivative market
TakerFeeRate *sdk.Dec
// relayer_fee_share_rate defines the relayer fee share rate for the derivative market
RelayerFeeShareRate *sdk.Dec
// min_price_tick_size defines the minimum tick size of the order's price and margin
MinPriceTickSize *sdk.Dec
// min_quantity_tick_size defines the minimum tick size of the order's quantity
MinQuantityTickSize *sdk.Dec
// min_notional defines the minimum notional for orders
MinNotional *sdk.Dec
// expiration timestamp
ExpirationTimestamp int64
// expiration timestamp
SettlementTimestamp int64
// new price at which market will be settled
SettlementPrice *sdk.Dec
// admin of the market
Admin string
Status MarketStatus
OracleParams *ProviderOracleParams
}

Proposal/DerivativeMarketParamUpdate

type OracleParams struct {
// Oracle base currency
OracleBase string
// Oracle quote currency
OracleQuote string
// Scale factor for oracle prices.
OracleScaleFactor uint32
// Oracle type
OracleType types1.OracleType
}

type DerivativeMarketParamUpdateProposal struct {
Title string
Description string
MarketId string
InitialMarginRatio *sdk.Dec
MaintenanceMarginRatio *sdk.Dec
MakerFeeRate *sdk.Dec
TakerFeeRate *sdk.Dec
RelayerFeeShareRate *sdk.Dec
MinPriceTickSize *sdk.Dec
MinQuantityTickSize *sdk.Dec
MinNotional *sdk.Dec
HourlyInterestRate *sdk.Dec
HourlyFundingRateCap *sdk.Dec
Status MarketStatus
OracleParams *OracleParams
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • MarketId describes the id of the market to change params.
  • InitialMarginRatio describes the target initial margin ratio.
  • MaintenanceMarginRatio describes the target maintenance margin ratio.
  • MakerFeeRate describes the target fee rate for makers.
  • TakerFeeRate describes the target fee rate for takers.
  • RelayerFeeShareRate describes the relayer fee share rate.
  • MinPriceTickSize defines the minimum tick size of the order's price.
  • MinQuantityTickSize defines the minimum tick size of the order's quantity.
  • Status describes the target status of the market.
  • OracleParams describes the new oracle parameters.

Proposal/TradingRewardCampaignLaunch

TradingRewardCampaignLaunchProposal defines an SDK message for proposing to launch a new trading reward campaign.

type TradingRewardCampaignLaunchProposal struct {
Title string
Description string
CampaignInfo *TradingRewardCampaignInfo
CampaignRewardPools []*CampaignRewardPool
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • CampaignInfo describes the CampaignInfo.
  • CampaignRewardPools describes the CampaignRewardPools.

Proposal/TradingRewardCampaignUpdate

TradingRewardCampaignUpdateProposal defines an SDK message for proposing to update an existing trading reward campaign.

type TradingRewardCampaignUpdateProposal struct {
Title string
Description string
CampaignInfo *TradingRewardCampaignInfo
CampaignRewardPoolsAdditions []*CampaignRewardPool
CampaignRewardPoolsUpdates []*CampaignRewardPool
}
  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • CampaignRewardPoolsAdditions describes the CampaignRewardPoolsAdditions.
  • CampaignRewardPoolsUpdates describes the CampaignRewardPoolsUpdates.

Proposal/FeeDiscount

FeeDiscountProposal defines an SDK message for proposing to launch or update a fee discount schedule.

type FeeDiscountProposal struct {
Title string
Description string
Schedule *FeeDiscountSchedule
}
  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • Schedule describes the Fee discount schedule.

Proposal/TradingRewardPendingPointsUpdate

TradingRewardPendingPointsUpdateProposal defines an SDK message to update reward points for certain addresses during the vesting period.

type TradingRewardPendingPointsUpdateProposal struct {
Title string
Description string
PendingPoolTimestamp int64
RewardPointUpdates *[]RewardPointUpdate
}

Fields description

  • Title describes the title of the proposal.
  • Description describes the description of the proposal.
  • PendingPoolTimestamp describes timestamp of the pending pool.
  • RewardPointUpdates describes the RewardPointUpdate.