Market
The Market contract acts as the point of interaction for all lending and borrowing related activities. New stablecoin deposits are added to this contract's balance, while borrows are subtracted from the contract balance.
Config
Key
Type
Description
contract_addr
CanonicalAddr
Address of itself (Market contract)
owner_addr
CanonicalAddr
Address of contract owner that can update config
aterra_contract
CanonicalAddr
Contract address of aTerra
interest_model
CanonicalAddr
Contract address of Interest Model
distribution_model
CanonicalAddr
Contract address of Distribution Model
overseer_contract
CanonicalAddr
Contract address of Overseer
collector_contract
CanonicalAddr
Contract address of Collector
distributor_contract
CanonicalAddr
Contract address of Distributor
stable_denom
String
Native token denomination for stablecoin
max_borrow_factor
Decimal256
Maximum portion of stablecoin liquidity available for borrows
InstantiateMsg
Instantiates the money market Market contract. Requires the owner to make an initial deposit of 1 Terra stablecoin and mints 1 aTerra to the Market contract (inaccessible). The creator's initial stablecoin deposit ensures the aTerra supply to always be a high enough value to prevent rounding errors in the aTerra exchange rate calculation.
Key
Type
Description
owner_addr
String
Address of contract owner
stable_denom
String
Native token denomination for stablecoin
aterra_code_id
u64
Code ID for aTerra contract
anc_emission_rate
Decimal256
Initial per-block ANC emission rate to borrowers
max_borrow_factor
Decimal256
Maximum portion of stablecoin liquidity available for borrows
ExecuteMsg
Receive
Receive
Can be called during a CW20 token transfer when the Mint contract is the recipient. Allows the token transfer to execute a Receive Hook as a subsequent action within the same transaction.
Key
Type
Description
sender
String
Sender of token transfer
amount
Uint128
Amount of tokens received
RegisterContracts
RegisterContracts
Registers the addresses of other Money Market contracts. Can only be issued by the owner.
Key
Type
Description
overseer_contract
String
Contract address of Overseer
interest_model
String
Contract address of Interest Model
distribution_model
String
Contract address of Distribution Model
collector_contract
String
Contract address of Collector
distributor_contract
String
Contract address of Distributor
[Internal] RegisterATerra
[Internal] RegisterATerra
Registers the contract address of aTerra
Cw20 Token contract. Issued by aTerra
after initialization.
Key
Type
Description
UpdateConfig
UpdateConfig
Updates the configuration of the contract. Can be only issued by the owner.
Key
Type
Description
owner_addr
*
String
Address of new owner
max_borrow_factor
*
Decimal256
New maximum portion of stablecoin liquidity available for borrows
interest_model
*
String
New interest model contract address
distribution_model
*
String
New contract address of Distribution Model
* = optional
[Internal] RepayStableFromLiquidation
[Internal] RepayStableFromLiquidation
Repays a liquidated loan using stablecoins gained from liquidated collaterals. Can only be issued by Overseer
.
Key
Type
Description
borrower
String
Address of loan borrower
prev_balance
Uint256
Balance of Market contract prior to collateral liquidation
[Internal] ExecuteEpochOperations
[Internal] ExecuteEpochOperations
Adjusts the borrower ANC emission rate and sends accumulated ANC excess yield reserves to Overseer. Can only be issued by Overseer.
Key
Type
Description
deposit_rate
Decimal256
Calculated per-block deposit of the last epoch
target_deposit_rate
Decimal256
Target per-block deposit rate of Anchor
threshold_deposit_rate
Decimal256
Threshold per-block deposit rate of Anchor
distributed_interest
Uint256
Amount of depositor subsidies distributed in this epoch
DepositStable
DepositStable
Deposits stablecoins to Anchor. Requires stablecoins to be sent with the message.
Key
Type
Description
BorrowStable
BorrowStable
Borrows stablecoins from Anchor.
Key
Type
Description
borrow_amount
Uint256
Amount of stablecoins to borrow
to
*
String
Withdrawal address for borrowed stablecoins
* = optional
RepayStable
RepayStable
Repays previous stablecoin liability. Requires stablecoins to be sent with the message.
Key
Type
Description
ClaimRewards
ClaimRewards
Claims accrued ANC rewards. Can designate an optional recipient. Sends rewards to message sender if to
is not specified.
Key
Type
Description
to
*
String
Optional recipient of accrued ANC rewards
* = optional
Receive Hooks
RedeemStable
RedeemStable
Redeems aTerra to their underlying stablecoins.
Key
Type
Description
QueryMsg
Config
Config
Gets the Market contract configuration.
Key
Type
Description
ConfigResponse
ConfigResponse
Key
Type
Description
owner_addr
String
Address of contract owner
aterra_contract
String
Contract address of aTerra
interest_model
String
Contract address of Interest Model
distribution_model
String
Contract address of Distribution Model
overseer_contract
String
Contract address of Overseer
collector_contract
String
Contract address of Collector
distributor_contract
String
Contract address of Distributor
stable_denom
String
Native token denomination for stablecoin
max_borrow_factor
Decimal256
Maximum portion of stablecoin liquidity available for borrows
State
State
Gets state information of Market. Returns an interest-accrued value if block_height
field is filled. Returns the stored (no interest accrued) state if not filled.
Key
Type
Description
block_height
u64
Block number to use in query
* = optional
StateResponse
StateResponse
Key
Type
Description
total_liabilities
Decimal256
Total amount of liabilities of all borrowers
total_reserves
Decimal256
Total amount of ANC purchase reserves
last_interest_updated
u64
Block number when interest was last accrued
last_reward_updated
u64
Block number when rewards were last accrued
global_interest_index
Decimal256
Current global interest index
global_reward_index
Decimal256
Current ANC global reward index
anc_emission_rate
Decimal256
Current per-block ANC emission rate to borrowers
prev_aterra_supply
Uint256
aTerra supply when interest was last accrued
prev_exchange_rate
Decimal256
aTerra exchange rate when interest was last accrued
EpochState
EpochState
Gets state information related to epoch operations. Returns an interest-accrued value if block_height
field is filled. Returns the stored (no interest accrued) state if not filled.
Key
Type
Description
block_height
*
u64
Block number to use in query
distributed_interest
*
Uint256
Amount of depositor subsidies distributed in this epoch
* = optional
EpochStateResponse
EpochStateResponse
Key
Type
Description
exchange_rate
Decimal256
Current aTerra exchange rate
aterra_supply
Uint256
Current aTerra supply
BorrowerInfo
BorrowerInfo
Gets information for the specified borrower. Returns an interest-and-reward-accrued value if block_height
field is filled. Returns the stored (no interest / reward accrued) state if not filled.
Key
Type
Description
borrower
String
Address of borrower
block_height
*
u64
Current block number
* = optional
BorrowerInfoResponse
BorrowerInfoResponse
Key
Type
Description
borrower
String
Address of borrower
interest_index
Decimal256
Interest index of borrower
reward_index
Decimal256
ANC reward index of borrower
loan_amount
Uint256
Amount of borrower's liability
pending_rewards
Decimal256
Amount of ANC rewards accrued to borrower
BorrowInfos
BorrowInfos
Gets information for all borrowers.
Key
Type
Description
start_after
*
String
Borrower address to start query
limit
*
u32
Maximum number of entries to query
* = optional
BorrowerInfosResponse
BorrowerInfosResponse
Key
Type
Description
borrower_infos
Vec<BorrowerInfoResponse>
List of borrower information
Key
Type
Description
borrower
String
Address of borrower
interest_index
Decimal256
Interest index of borrower
reward_index
Decimal256
ANC reward index of borrower
loan_amount
Uint256
Amount of borrower's liability
pending_rewards
Decimal256
Amount of ANC rewards accrued to borrower
Last updated