Terminology
It's dangerous to go alone - learn these.
Archcontroller
Smart contract which doubles up as a registry and permission gate. Borrowers are added or removed from the archcontroller by the operators of the protocol itself (granting/rescinding the ability to deploy hooks and/or markets), and the addresses of any factories, hooks instances or markets that get deployed through the protocol are stored here.
Base APR
The interest rate that lenders receive on assets that they have deposited into a particular market, in the absence of the penalty APR being enforced.
Borrow
To withdraw assets from a market that has a non-zero supply and reserve ratio less than 100%, with the intent of repaying the assets (plus any accrued interest) to the market either when the required purpose of using the assets has concluded or as a response to withdrawal requests.
Borrower
Both:
The counterparty that wishes to make use of a credit facility through a Wildcat market, and
The blockchain address that defines the parameters of a market and deploys the hook instances and market contracts that use them.
Capacity
The
maxTotalSupply
field in the state.The maximum amount of an asset that a borrower is looking to source via a market - the threshold for
totalSupply
after which the market will stop accepting deposits.Can be exceeded by the market's
totalSupply
due to interest accrual.
Claim
Removing assets from the unclaimed withdrawals pool that were requested for withdrawal by a lender.
Can only occur after a withdrawal cycle expires.
Note that retrieving your deposits from a Wildcat market requires a withdrawal request and then a claim - it is a two transaction process with the conclusion of one withdrawal cycle in between.
Collateral Obligation
The minimum amount of assets that the borrower is obligated to keep in the market in order to avoid delinquency.
The sum of:
The reserves needed to meet the reserve ratio for the outstanding supply,
The market's unclaimed withdrawals pool,
The unclaimed protocol fees.
Delinquency
A market state wherein there are insufficient assets in the market to meet the market's collateral obligations.
Arises via the passage of time through interest if the borrower borrows right up to their reserve ratio.
Can also arise if a lender makes a withdrawal request that exceeds the market's available liquidity.
A market being delinquent for an extended period of time (as specified by the grace period) results in the penalty APR being enforced in addition to the base APR and any protocol APR that may apply.
'Cured' by the borrower depositing sufficient assets into the market as to reattain the required collateral obligation.
Deposit
Deposit Credential
Permission granted to a lender through a role provider in order to deposit into a market.
The set of requirements for receiving a deposit credential from a given role provider are arbitrary, determined by the borrower according to their needs.
May be associated with a TTL (Time-To-Live) configured by the borrower, after which the deposit credential expires and a new one must be acquired from a role provider in order to make any further deposits.
Depositing into a market while holding a valid deposit credential (or receiving market tokens while in possession of one) marks lender as a known lender.
Escrow Contract
An auxiliary smart contract that is deployed in the event that the sentinel detects that a lender address has been added to a sanctioned list such as the OFAC SDN: this check is performed through the Chainalysis oracle.
Any assets relating to an attempted claim by the affected lender as well as any market tokens tied to their remaining deposit are automatically transferred to the escrow contract when blocked (either through an attempt to withdraw or via a call to a 'nuke from orbit' function found within the market).
Assets can only be released to the lender in the event that a) they are no longer tagged as sanctioned by the Chainalysis oracle, or b) the borrower specifically overrides the sanction.
Expired Withdrawal
A withdrawal request that could not be fully honoured by assets in the unclaimed withdrawals pool within a single withdrawal cycle.
Fixed Term
Determines the length of time after market deployment in which withdrawal requests and reductions in base APR will be rejected by the market.
After this time has elapsed, the market converts into an 'open term' market where the above are permitted. Once a market has converted to open term, it cannot be moved back into a fixed term.
Default value is zero (immediately open term).
Associated with two distinct market configuration flags that allow a borrower to either prematurely close a market or bring the maturity/conversion time closer to the present.
Cannot be extended once a market is deployed.
Force Buyback
If enabled, permits the borrower to purchase market tokens directly from a lender, subverting the market by swapping the market tokens for an equivalent amount of underlying assets sourced from the borrower.
Cannot be used if a market is delinquent or currently in a fixed term state.
If performed for the first time on a market, marks the borrower as a known lender.
Immediately forces the market tokens into a withdrawal request on behalf of the borrower.
Can be permanently disabled for a market at the borrower's discretion.
Note: if a market has both force buyback enabled and open token transferability, a borrower is capable of force rebuying market tokens from LP contracts that hold market tokens such as Uniswap or Curve pools. Despite there being a warranty in the (optional) template Master Loan Agreement related to this point, the potential for substantial damage exists here.
Grace Period
Rolling period of time for which a market can be delinquent before the penalty APR of the market activates.
Note that the grace period does not 'reset' to zero when delinquency is cured. See grace tracker below for details.
Grace Tracker
Internal market parameter associated with the grace period.
timeDelinquent
in the market state.Once a market becomes delinquent, begins counting seconds up from zero - when the value of the grace tracker exceeds the grace period, the penalty APR activates.
Once a market is cured of delinquency, begins counting seconds down to zero - the penalty APR continues to apply until the grace tracker value is below the grace period value.
Enforces the rolling nature of the grace period.
Hook
A function on a hook instance which is executed when a particular action occurs on a market.
Corresponds to a specific market action, such as the
onCloseMarket
hook which is called whencloseMarket
is called on a market during termination.
Hook Instance
Contract that defines the hook functions for a market.
Deployed by an approved borrower as an instance of a particular hooks template.
Configured in the market parameters at market deployment.
Hooks Template
A base contract defining behaviour for a kind of hook contract approved by factory operators.
Copied when borrowers deploy hook instances.
Known Lender
A state marked within the market contracts for any lender that either deposited assets into a market or received market tokens while holding a valid deposit credential.
Any known lender is always capable of making a withdrawal request unless i) the market is in a fixed term or ii) the known lender is marked as sanctioned by the sentinel.
Lender
Liquid Reserves
The amount of underlying assets currently counting towards the market's required reserves.
Comprises the liquidity that can be made available for new withdrawals.
Is equal to the total assets in the market minus the unclaimed withdrawals, pending withdrawals, expired withdrawals and accrued protocol fees.
Market
Smart contract that accepts underlying assets, issuing market tokens in return.
Deployed by borrower through the factory.
Permissioned: only lenders that have been obtained a credential authorising them to deposit (either through explicit whitelisting or another access provider via hooks) can interact.
Market Token
ERC-20 token indicating a claim on the underlying assets in a market.
Supply rebases after every non-static call to the market contract depending on the total current APR of the market.
Can only be redeemed by authorised lender addresses (not necessarily the same one that received the market tokens initially).
Name and symbol prefixes are customisable in market creation, prepending to the name and symbol of the underlying asset.
Minimum Deposit
Defaults to zero, can be configured after launch by the borrower.
Outstanding Supply
The amount of market tokens not currently queued for withdrawal.
Penalty APR
Additional interest rate (above and beyond the base APR and any protocol APR) that is applied for as long as the grace tracker value for a market is in excess of the specified grace period.
Encourages borrower to responsibly monitor the reserve ratio of a market.
No part of the penalty APR is receivable by the Wildcat protocol itself (does not inflate the protocol APR if present).
Pending Withdrawal
A withdrawal request that has not yet expired (i.e. was created in the current withdrawal cycle).
Protocol APR
Percentage of base APR that accrues to the Wildcat protocol itself.
Parameter configured by the factory operator for each hooks template, applying to all markets deployed with an instance of said template.
Can be zero.
Does not increase in the presence of an active penalty APR (which only increases the APR accruing to lenders).
Example: market with base APR of 10% and protocol APR of 20% results in borrower paying 12% when penalty APR is not active.
Required Reserves
Amount of underlying assets that must be made available for new withdrawals according to the configured reserve ratio.
Equal to the reserve ratio times the outstanding supply.
Reserve Ratio
Percentage of current outstanding supply that must be kept in the market (but still accrue interest).
Intended to provide a liquid buffer for lenders to make withdrawal requests against, partially 'collateralising' the credit facility through lenders' deposits.
A market which has insufficient assets in the market to meet the reserve ratio is said to be delinquent, with the penalty APR potentially being enforced if the delinquency is not cured before the grace tracker value exceeds that of the grace period for that particular market.
Role Provider
A smart contract registered to an access hook instance for a market which grants deposit credentials to would-be lenders according to a specific set of requirements (i.e. lender has a Coinbase Verification, and/or lender is not marked as sanctioned by the Chainalysis oracle).
Two variants: 'pull' providers which are contracts that can be queried by wallet address to determine suitability, or 'push' providers that explicitly tell the market which addresses are suitable.
Deployed by the borrower (either from a template or constructed themselves).
Can be arbitrarily added and removed to a market after deployment by the borrower.
Note: the removal of all role providers from a hook instance for a market means that no more deposit credentials can be granted. However, all known lenders will always be able to make withdrawal requests provided the market is not in a fixed term and they are not sanctioned.
Sentinel
Smart contract that ensures that addresses which interact with the protocol are not flagged by the Chainalysis oracle for sanctions.
Facilitates the deployment of escrow contracts.
Supply
Current amount of underlying asset deposited in a market.
Tied 1:1 with the supply of market tokens (rate of growth APR dependent).
Can only be reduced by burning market tokens as part of a withdrawal request or claim.
Reserve ratios are enforced against the supply of a market, not its capacity.
Capacity can be reduced below current supply by a borrower, but this only prevents the further deposit of assets until the supply is once again below capacity.
Token Transferability
Determines whether market tokens can be transferred from their holders to arbitrary wallets.
Three configurations options (default is Open):
Open: market tokens can be transferred anywhere at any time.
Restricted: market tokens can only be transferred to either known lenders or addresses holding a valid (unexpired) deposit credential.
Disabled: market tokens can only be sent back to the market as part of a withdrawal request.
Unclaimed Withdrawals Pool
A sequestered pool of underlying assets which are pending their claim by lenders following a withdrawal request.
Assets are moved from market reserves to the unclaimed withdrawals pool by burning market tokens at a 1:1 ratio (reducing the supply of the market).
Underlying Asset
The asset which the borrower is seeking to borrow by deploying a market - for example DAI (Dai Stablecoin) or WETH (Wrapped Ether).
Can be any ERC-20 token (however, rebasing tokens break the underlying interest model).
Withdrawal Cycle
Period of time that must elapse between the first withdrawal request of a 'wave' of withdrawals and assets in the unclaimed withdrawals pool being made available to claim.
Withdrawal cycles do not work on a rolling basis - at the end of one withdrawal cycle, the next cycle will not start until the next withdrawal request.
In the event that the amount being claimed in the same cycle across all lenders is in excess of the reserves currently within a market, all lenders requests within that cycle will be honoured pro rata depending on overall amount requested.
Intended to prevent a run on a given market (mass withdrawal requests) leading to slower lenders receiving nothing.
Can have a value of zero, in which case each withdrawal request is processed - and potentially added to the withdrawal queue - as a standalone batch.
Withdrawal Queue
Internal data structure of a market.
All withdrawal requests that could not be fully honoured at the end of their withdrawal cycle are batched together, marked as expired and added to the withdrawal queue.
FIFO (First-In-First-Out): when assets are returned to a market which has a non-zero withdrawal queue, assets are immediately routed to the unclaimed withdrawals pool and can subsequently be claimed by lenders with the oldest expired withdrawals first.
Withdrawal Request
An instruction to a market to transfer reserves within a market to the unclaimed withdrawals pool, to be claimed at the end of a withdrawal cycle.
A withdrawal request made of a market with non-zero reserves will burn as many market tokens as possible 1:1 to fully honour the request.
Any amount requested - whether or not it is in excess of the market reserves - is marked as a pending withdrawal, either to be fully honoured at the end of the cycle, or marked as expired and added to the withdrawal queue, depending on the actions of the borrower during the cycle.
Last updated