Wildcat Protocol Documentation
  • The Wildcat Protocol
  • Overview
    • The Elevator Pitch
    • Whitepaper
    • FAQs
  • Using Wildcat
    • Terminology
    • Onboarding
    • Day-To-Day Usage
      • Borrowers
      • Lenders
      • Market Access Via Policies/Hooks
      • The Sentinel
    • Protocol Usage Fees
    • Delinquency
  • Technical Overview
    • Security/Developer Dives
      • The Scale Factor
      • Core Behaviour
      • V1 -> V2 Changelog
      • Known Issues
      • Hooks
        • How Hooks Work
        • Access Control Hooks
        • Fixed Term Loan Hooks
    • Function/Event Signatures
      • /access
        • AccessControlHooks.sol
        • IRoleProvider.sol
        • MarketConstraintHooks.sol
      • /interfaces
        • IHooks.sol
        • IMarketEventsAndErrors.sol
        • IWildcatArchController.sol
        • IWildcatSanctionsEscrow.sol
        • IWildcatSanctionsSentinel.sol
      • /market
        • WildcatMarketConfig.sol
        • WildcatMarketToken.sol
        • WildcatMarketWithdrawals.sol
        • WildcatMarketBase.sol
      • /spherex
        • ISphereXEngine.sol
        • ISphereXProtectedRegisteredBase.sol
        • SphereXConfig.sol
      • HooksFactory.sol
      • IHooksFactory.sol
      • WildcatArchController.sol
      • WildcatSanctionsEscrow.sol
      • WildcatSanctionsSentinel.sol
    • Protocol Structs
    • Contract Deployments
  • Security Measures
    • Code Security Reviews
    • SphereX Protection
    • Bug Bounty Program
  • Legal
    • Wildcat Terms Of Use
    • Risk Disclosure Statement
    • Template MLA
    • Privacy Policy
Powered by GitBook
On this page
  1. Using Wildcat

Terminology

It's dangerous to go alone - learn these.

PreviousFAQsNextOnboarding

Last updated 1 month ago

Archcontroller

  • Smart contract which doubles up as a registry and permission gate. are added or removed from the archcontroller by the operators of the protocol itself (granting/rescinding the ability to deploy and/or ), 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 that they have deposited into a particular , in the absence of the being enforced.

Borrow

  • To withdraw from a that has a non-zero and 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 .

Borrower

  • Both:

    • The counterparty that wishes to make use of a credit facility through a Wildcat , and

    • The blockchain address that defines the parameters of a market and deploys the and market contracts that use them.

Capacity

  • Parameter required of when creating a new .

  • 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 .

  • Can be exceeded by the market's totalSupply due to interest accrual.

Claim

Collateral Obligation

  • The sum of:

Delinquency

  • Arises via the passage of time through interest if the borrower borrows right up to their reserve ratio.

Deposit

  • Both:

    • A term for the lenders' assets themselves once in a market.

Deposit Credential

  • 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.

Escrow Contract

  • 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

Fixed Term

  • 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

  • Can be permanently disabled for a market at the borrower's discretion.

Grace Period

Grace Tracker

  • timeDelinquent in the market state.

  • 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

  • Corresponds to a specific market action, such as the onCloseMarket hook which is called when closeMarket is called on a market during termination.

Hook Instance

  • Configured in the market parameters at market deployment.

Hooks Template

  • Copied when borrowers deploy hook instances.

Known Lender

Lender

  • Both:

Liquid Reserves

Market

  • 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

  • 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

Penalty APR

  • No part of the penalty APR is receivable by the Wildcat protocol itself (does not inflate the protocol APR if present).

Pending (State)

  • It was observed that several lenders expressed concern about the loaded meaning of the word 'delinquent' (which is purely technical within the protocol itself).

  • As a result, 'Pending' is used on the frontend to emphasise that this state does not necessarily imply a failure on the part of the borrower: typically delinquency is fallen into as soon as a large withdrawal request is made, and remains until repayments are made.

Pending Withdrawal

Policy

Protocol APR

  • Can be zero.

  • 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

Reserve Ratio

Role Provider

  • 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.

  • Can be arbitrarily added and removed to a market after deployment by the borrower.

Sentinel

Supply

Token Transferability

  • Three configurations options (default is Open):

    • Open: market tokens can be transferred anywhere at any time.

Unclaimed Withdrawals Pool

Underlying Asset

  • Can be any ERC-20 token (however, rebasing tokens break the underlying interest model).

Withdrawal Cycle

  • 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.

  • Intended to prevent a run on a given market (mass withdrawal requests) leading to slower lenders receiving nothing.

Withdrawal Queue

Withdrawal Request

Removing from the that were requested for withdrawal by a .

Can only occur after a expires.

Note that retrieving your from a Wildcat market requires a and then a claim - it is a two transaction process with the conclusion of one withdrawal cycle in between.

The minimum amount of that the borrower is obligated to keep in the market in order to avoid .

The needed to meet the for the ,

The market's ,

The normalized value of the market's and withdrawals, and

The unclaimed .

A state wherein there are insufficient in the market to meet the market's .

Can also arise if a makes a that exceeds the market's available liquidity.

A market being delinquent for an extended period of time (as specified by the ) results in the being enforced in addition to the and any that may apply.

'Cured' by the borrower sufficient assets into the market as to reattain the required collateral obligation.

The act of sending as a to a for the purposes of being by the ,

The act of sending assets as a borrower to a market for the purposes of being by lenders,

Permission granted to a through a in order to into a .

The set of requirements for receiving a deposit credential from a given role provider are arbitrary, determined by the according to their needs.

Depositing into a market while holding a valid deposit credential (or receiving while in possession of one) marks lender as a .

An auxiliary smart contract that is deployed in the event that the detects that a address has been added to a sanctioned list such as the OFAC SDN: this check is performed through the .

Used to transfer the debt (for the ) and obligation to repay (for the ) away from the contract to avoid wider contamination through interaction. Interest ceases to accrue upon creation and transfer.

Any relating to an attempted claim by the affected lender as well as any market tokens tied to their remaining 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).

A that could not be fully honoured by in the within a single .

Parameter configured by a when creating a new .

Determines the length of time after market deployment in which and reductions in will be rejected by the market.

Permission toggled by a when creating a new .

If enabled, permits the borrower to purchase directly from a , subverting the market by swapping the market tokens for an equivalent amount of sourced from the borrower.

Cannot be used if a market is or currently in a state.

If performed for the first time on a market, marks the borrower as a .

Immediately forces the market tokens into a on behalf of the borrower.

Note: if a market has both force buyback enabled and open , 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.

Parameter required of when creating a new .

Rolling period of time for which a market can be before the of the market activates.

Note that the grace period does not 'reset' to zero when delinquency is cured. See below for details.

Internal parameter associated with the .

Once a market becomes , begins counting seconds up from zero - when the value of the grace tracker exceeds the grace period, the activates.

A function on a which is executed when a particular action occurs on a .

Contract that defines the for a market.

Deployed by an approved borrower as an instance of a particular .

A base contract defining behaviour for a kind of approved by factory operators.

A state marked within the contracts for any that either into a market or received while holding a valid .

Any known lender is always capable of making a unless i) the market is in a or ii) the known lender is marked as sanctioned by the .

A counterparty that wishes to provide a credit facility through a Wildcat , and

The blockchain address associated with that counterparty which to a market for the purposes of being by the .

The amount of currently counting towards the 's .

Comprises the liquidity that can be made available for new .

Is equal to the total assets in the market minus the , , and accrued .

Smart contract that accepts , issuing in return.

Deployed by through the factory.

Holds assets in escrow pending either being by the borrower or by a .

ERC-20 token indicating a on the in a .

Issued to after a .

rebases after every non-static call to the market contract depending on the total current APR of the market.

Parameter required of when creating a new .

Determines the amount of below which any attempts by a to in a single transaction will be rejected.

The amount of not currently queued for .

Equal to the market's minus its and withdrawals.

Parameter required of when creating a new .

Additional interest rate (above and beyond the and any ) that is applied for as long as the value for a market is in excess of the specified .

Encourages borrower to responsibly monitor the of a market.

An alias for that is used on the frontend while a has insufficient .

A market that is pending/delinquent for longer than the specified grace period subsequently enters the Penalty state, where the applies.

A that has not yet (i.e. was created in the current ).

Another term for a .

Percentage of that accrues to the Wildcat protocol itself.

Parameter configured by the factory operator for each , applying to all deployed with an instance of said template.

Does not increase in the presence of an active (which only increases the APR accruing to ).

Amount of that must be made available for new withdrawals according to the configured .

Equal to the reserve ratio times the .

Parameter required of when creating a new .

Percentage of current that must be kept in the market (but still accrue interest).

Intended to provide a liquid buffer for to make against, partially 'collateralising' the credit facility through lenders' deposits.

Increases temporarily when a borrower reduces the of a (fixed-term increase).

A market which has insufficient assets in the market to meet the reserve ratio is said to be , with the potentially being enforced if the delinquency is not cured before the value exceeds that of the for that particular market.

A smart contract registered to an access for a which grants to would-be 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).

Deployed by the (either from a template or constructed themselves).

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 will always be able to make provided the market is not in a and they are not sanctioned.

Smart contract that ensures that addresses which interact with the protocol are not flagged by the for sanctions.

Can deploy escrow contracts to excise a flagged by the oracle from a wider .

Facilitates the deployment of .

Current amount of in a .

Tied 1:1 with the supply of (rate of growth APR dependent).

Can only be reduced by burning market tokens as part of a or .

are enforced against the supply of a market, not its .

Capacity can be reduced below current supply by a , but this only prevents the further deposit of assets until the supply is once again below capacity.

Parameter required of when creating a new .

Determines whether can be transferred from their holders to arbitrary wallets.

Restricted: market tokens can only be transferred to either or addresses holding a valid (unexpired) .

Disabled: market tokens can only be sent back to the market as part of a .

A sequestered pool of which are pending their by following a .

Assets are moved from market reserves to the unclaimed withdrawals pool by burning at a 1:1 ratio (reducing the of the market).

Assets within the unclaimed withdrawals pool do not accrue interest, but similarly cannot be by the - they are considered out of reach.

Parameter required of when creating a new .

The asset which the borrower is seeking to by deploying a market - for example DAI (Dai Stablecoin) or WETH (Wrapped Ether).

Parameter required of when creating a new .

Period of time that must elapse between the first of a 'wave' of withdrawals and in the being made available to .

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 requests within that cycle will be honoured pro rata depending on overall amount requested.

Can have a value of zero, in which case each withdrawal request is processed - and potentially added to the - as a standalone batch.

Internal data structure of a .

All that could not be fully honoured at the end of their are batched together, marked as and added to the withdrawal queue.

Tracks the order and amounts of .

FIFO (First-In-First-Out): when are returned to a market which has a non-zero withdrawal queue, assets are immediately routed to the and can subsequently be claimed by lenders with the oldest expired withdrawals first.

An instruction to a to transfer reserves within a market to the , to be at the end of a .

A withdrawal request made of a market with non-zero reserves will burn as many 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 , either to be fully honoured at the end of the cycle, or marked as and added to the , depending on the actions of the during the cycle.

Chainalysis oracle
Borrowers
hooks
markets
assets
market
penalty APR
assets
market
supply
reserve ratio
withdrawal requests
market
hook instances
borrower
market
deposits
assets
unclaimed withdrawals pool
lender
withdrawal cycle
deposits
withdrawal request
assets
delinquency
reserves
reserve ratio
outstanding supply
unclaimed withdrawals pool
pending
expired
protocol fees
market
assets
collateral obligations
lender
withdrawal request
grace period
penalty APR
base APR
protocol APR
depositing
assets
lender
market
borrowed
borrower
withdrawn
lender
role provider
deposit
market
borrower
market tokens
known lender
Chainalysis oracle
sentinel
lender
lender
borrower
market
assets
deposit
withdrawal request
assets
unclaimed withdrawals pool
withdrawal cycle
borrower
market
withdrawal requests
base APR
borrower
market
market tokens
lender
underlying assets
delinquent
fixed term
known lender
withdrawal request
token transferability
borrower
market
delinquent
penalty APR
grace tracker
market
grace period
delinquent
penalty APR
hook instance
market
hook functions
hooks template
hook contract
market
lender
deposited
assets
market tokens
deposit credential
withdrawal request
fixed term
sentinel
market
deposits
assets
borrowed
borrower
underlying assets
market
required reserves
withdrawals
unclaimed withdrawals
pending withdrawals
expired withdrawals
protocol fees
underlying assets
market tokens
borrower
borrowed
withdrawn
lender
claim
underlying assets
market
lenders
deposit
Supply
borrower
market
assets
lender
deposit
market tokens
withdrawal
supply
pending
expired
borrower
market
base APR
protocol APR
grace tracker
grace period
reserve ratio
delinquency
market
reserves
Penalty APR
hook instance
base APR
hooks template
markets
penalty APR
lenders
underlying assets
reserve ratio
outstanding supply
borrower
market
outstanding supply
lenders
withdrawal requests
base APR
market
delinquent
penalty APR
grace tracker
grace period
hook instance
market
deposit credentials
lenders
borrower
known lenders
withdrawal requests
fixed term
lender
market
escrow contracts
underlying asset
deposited
market
market tokens
withdrawal request
claim
Reserve ratios
capacity
borrower
borrower
market
market tokens
known lenders
deposit credential
withdrawal request
underlying assets
claim
lenders
withdrawal request
market tokens
supply
borrowed
borrower
borrow
borrower
market
withdrawal request
assets
unclaimed withdrawals pool
claim
lenders
withdrawal queue
market
withdrawal requests
withdrawal cycle
expired
lender
claims
assets
unclaimed withdrawals pool
market
unclaimed withdrawals pool
claimed
withdrawal cycle
market tokens
pending withdrawal
expired
withdrawal queue
borrower
withdrawal request
expired
market
borrower
withdrawal cycle