Incentives
The Incentives Contract handles additional incentives. It offers the capability to incentivise markets permissionlessly by third parties. Incentive assets have to be whitelisted to be applied.
Deployments
Neutron: neutron1aszpdh35zsaz0yj80mz7f5dtl9zq5jfl8hgm094y0j0vsychfekqxhzd39
Osmosis: osmo1nkahswfr8shg8rlxqwup0vgahp0dk4x8w6tkv3rra8rratnut36sk22vrm
Types
The types of the Incentives Contract can be found here.
For reference on the Queries and Methods:
type Addr = string
type Decimal = string
type Uint128 = string
interface Coin {
amount: Uint128
denom: string
[k: string]: unknown
}
Queries
active_emissions
Return active emissions for a specific market by denom.
{
active_emissions: {
denom: string
kind: 'red_bank' | 'perp_vault'
}
}
{
data: [
{
denom: string
emission_rate: Uint128
},
...
]
}
config
{
config: {}
}
{
data: {
address_provider: Addr
epoch_duration: number
max_whitelisted_denoms: number
owner?: string | null
proposed_new_owner?: string | null
whitelist_count: number
}
}
emission
{
emission: {
denom: string
incentive_denom: string
kind: 'red_bank' | 'perp_vault'
timestamp: number
}
}
{
data: {
emission_rate: Uint128
epoch_start: number
}
}
emissions
{
emissions: {
denom: string
incentive_denom: string
kind: 'red_bank' | 'perp_vault'
limit?: number | null
start_after_timestamp?: number | null
}
}
{
data: [
{
emission_rate: Uint128
epoch_start: number
},
...
]
}
incentive_state
{
incentive_state: {
denom: string
incentive_denom: string
kind: 'red_bank' | 'perp_vault'
}
}
{
data: {
denom: string
incentive_denom: string
index: Decimal
kind: 'red_bank' | 'perp_vault'
last_updated: number
}
}
incentive_states
{
incentive_states: {
limit?: number | null
start_after_denom?: string | null
start_after_incentive_denom?: string | null
start_after_kind?: 'red_bank' | 'perp_vault' | null
}
}
{
data: [
{
denom: string
incentive_denom: string
index: Decimal
kind: 'red_bank' | 'perp_vault'
last_updated: number
},
...
]
}
staked_astro_lp_position
{
staked_astro_lp_position: {
account_id: string
lp_denom: string
}
}
{
data: {
lp_coin: Coin
rewards: Coin[]
}
}
staked_astro_lp_positions
{
staked_astro_lp_positions: {
account_id: string
limit?: number | null
start_after?: string | null
}
}
{
data: {
data: [
{
lp_coin: Coin
rewards: Coin[]
},
...
]
metadata: {
has_more: boolean
}
}
}
staked_astro_lp_rewards
{
staked_astro_lp_rewards: {
account_id: string
lp_denom: string
}
}
{
data: {
data: [
[string, Coin[]],
...
]
metadata: {
has_more: boolean
}
}
}
user_unclaimed_rewards
{
user_unclaimed_rewards: {
account_id?: string | null
limit?: number | null
start_after_denom?: string | null
start_after_incentive_denom?: string | null
start_after_kind?: 'red_bank' | 'perp_vault' | null
user: string
}
}
{
data: Coin[]
}
whitelist
{
whitelist: {}
}
{
data: [
{
denom: string
min_emission_rate: Uint128
},
...
]
}
Methods
balance_change
{
balance_change: {
account_id?: string | null
denom: string
kind: 'red_bank' | 'perp_vault'
total_amount: Uint128
user_addr: Addr
user_amount: Uint128
}
}
claim_rewards
{
claim_rewards: {
account_id?: string | null
limit?: number | null
start_after_denom?: string | null
start_after_incentive_denom?: string | null
start_after_kind?: 'red_bank' | 'perp_vault' | null
}
}
claim_staked_astro_lp_rewards
{
claim_staked_astro_lp_rewards: {
account_id: string
lp_denom: string
}
}
set_asset_incentive
{
set_asset_incentive: {
denom: string
duration: number
emission_per_second: Uint128
incentive_denom: string
kind: 'red_bank' | 'perp_vault'
start_time: number
}
}
stake_astro_lp
{
stake_astro_lp: {
account_id: string
lp_coin: Coin
}
}
unstake_astro_lp
{
unstake_astro_lp: {
account_id: string
lp_coin: ActionCoin
}
}
Last updated