Glossary
A reference of every term that gets used as if you already know what it means. If you encounter a piece of jargon elsewhere in the docs that isn't here, that's a bug — let us know.
- Active loan
A loan in the
Activestate: the borrower has drawn the funds, the NFT is locked in collateral, and the maturity clock is ticking.- ActiveLock
A protocol-enforced lock that prevents the same NFT from backing two loans at once. Keyed by the NFT mint address.
- AllowedCollection
A pool-level allowlist entry indicating that NFTs from a particular Metaplex collection can be used as collateral in this pool.
- AllowedOracle
A protocol-level allowlist entry for an oracle public key. Only quotes signed by an active allowed-oracle pubkey are accepted.
- Anti-sniping
A mechanism in English auctions that automatically extends the auction's end timestamp when a bid arrives close to expiration, giving competitors time to react. Not used in Dutch auctions.
- APR
Annual percentage rate. The fixed interest rate for a Milky loan, applied pro-rata to the term length to compute the actual interest owed.
- Asset type ID
A 32-byte deterministic identity for a canonical card at a specific grader and grade. Two different physical certs of the same card at the same grade share the same
asset_type_id. Used for exposure tracking.- Auction
The on-chain mechanism that resolves a defaulted loan by selling the collateral card. Production auctions are Dutch; English is also supported by the program.
- Bid escrow
A USDC vault attached to a live auction that holds the current high bidder's funds. Funds flow out at settlement (to the pool and the protocol) or back to the bidder if outbid.
- Binding leaf
A 32-byte hash combining
(NFT mint, cert hash, asset type id)plus a domain separator. The Merkle allowlist's elements.- Cert hash
A 32-byte digest of a grading certificate's identity. Used in the binding leaf and in the
CertLock.- CertLock
A protocol-enforced lock that prevents the same grading certificate (identified by cert hash) from backing two loans at once, even if a different NFT is later minted for the same certificate.
- Collateral vault
The PDA-controlled token account that holds the card's NFT for the duration of an active loan or auction.
- Default
The state a loan transitions into when it's not repaid by `maturity
- grace period`. Triggers an auction.
- Draw
The instruction that releases USDC to the borrower and locks the card. The maturity clock starts at draw, not at create.
- Dutch auction
A descending-price auction where the listed price falls linearly from a starting price to a reserve over a fixed duration. The first bidder to accept the current price wins.
- Ed25519
The signature scheme the oracle uses to sign borrow quotes. Solana has native verification support via the Ed25519 program.
- English auction
An ascending-bid auction where the highest bid at the end timestamp wins. Supported by the program but not used in production default flow today.
- Fixed interest
Interest computed once at draw time as
principal × rate_bps × term_secs / (10,000 × seconds_per_year). Doesn't change based on when the loan is repaid.- FMV
Fair market value. The card's price in micro-USDC as determined by the oracle at the moment a quote is signed.
- Grace period
The time window after maturity during which the borrower can still repay on the original terms. After grace expires, the loan is eligible for default. Default 7 days, capped at 30 days.
- LP position
A per-(owner, pool) account recording how many shares an LP holds in a specific pool.
- LTV
Loan-to-value. The ratio of principal to the card's FMV, expressed in basis points. Capped by both pool and protocol settings.
- Maturity
The timestamp by which a loan must be repaid to avoid grace and eventual default.
maturity = draw_ts + term_secs.- Merkle root
The root hash of the protocol's collateral-eligibility tree. The on-chain
Configkeeps a ring buffer of K=3 active roots.- Micro-USDC
USDC's smallest unit. 1 USDC = 1,000,000 micro-USDC (USDC has 6 decimals).
Net asset value. The pool's total value in USDC, computed as
vault_balance + outstanding_principal + accrued_interest - accumulated_protocol_fees.- Origination fee
A small fee withheld from the borrower's disbursement at draw time. Computed as a percentage of the interest amount, not of the principal. Default 2%, capped at 5%.
- pNFT
Programmable NFT (Metaplex). A Metaplex token standard with delegate-and-lock semantics that the protocol uses for collateral of pNFT cards.
- Pool
The unit of capital that funds loans. Has its own quote vault, its own configuration, and its own LPs.
- PoolHeldNft
An on-chain record that the pool currently holds an NFT (because its auction expired with no bids). The pool admin retrieves and re-disposes of the card off-chain.
- PPS
Price per share. The current USDC value of one LP share, computed from
NAV / total_lp_shares(with 1e6 precision factor).- Programmable NFT
See pNFT.
- ProofReceipt
A short-lived PDA created by
verify_merkle_proofand consumed byloan_create, locking in the (NFT, cert, asset type, root version) binding for the loan being opened.- Protocol fee
The percentage of any auction surplus the protocol takes. Default 50% of surplus (only of surplus, not of debt).
- Quote
A signed off-chain message from the oracle authorizing a specific borrow against a specific card with specific terms.
- Quote ID
The unique 32-byte identifier of a quote, used for replay protection via the
UsedQuotePDA.- Reserve price
The minimum acceptable winning bid in an auction. Always equal to the loan's full payoff (principal + fixed interest).
- Root version
The version number associated with one of the K=3 active Merkle roots in the on-chain
Config. Quotes carry a root version they were signed against.- Settlement
The act of finalizing an auction: transferring USDC per the waterfall, transferring the NFT to the winner, and closing the loan and auction accounts.
- Surplus
The amount by which a winning auction bid exceeds the loan's payoff. Split between the protocol and the pool; never paid to the borrower.
- Term option
One of up to three pre-configured
(term_secs, rate_bps, grace_period_secs)triples a pool publishes. Borrowers pick one at loan creation.- Tokenization issuer
A third-party platform (today: CollectorCrypt and Phygitals) that takes physical custody of graded cards and mints NFTs/pNFTs representing them. Milky lends against those NFTs but never custodies the underlying physical cards itself.
- TypeExposure
A per-(pool, asset_type_id) account tracking how much principal is currently outstanding against that asset type. Used to enforce the pool's
max_exposure_per_type.- UsedQuote
A PDA created on first use of a quote. Its existence prevents the same quote from being used a second time.
- Utilization
The ratio of outstanding principal to NAV, in basis points. The protocol caps post-draw utilization to preserve a withdrawal buffer.
- Waterfall
The fixed split of auction proceeds between the pool (debt + share of surplus), the protocol (other share of surplus), and the borrower (zero on default).