DEVNETYou are on Solana devnet. Funds are not real. Behavior matches mainnet.

Withdrawals

Withdrawing from a MLKY pool is simple in concept: you burn some of your LP shares and the pool sends you USDC at the current price-per-share (PPS).

There are two ways out, and which one you get is decided by the pool rather than by you. If the pool has the spare cash and nobody is ahead of you, your withdrawal settles in a single transaction. If it does not, you join a queue and are paid as cash comes back in. Both are described below.

The straight-through path

When there is nothing in the way:

  1. You specify a number of shares to burn

    Either explicitly (e.g. "burn 5,000 shares") or implicitly via the app by entering a USDC amount, which the UI converts at the current PPS.

  2. The protocol computes your USDC payout

    payout = shares × PPS / 10^6. PPS is calculated from the pool's current net asset value (NAV) and total shares at the moment of the transaction.

  3. USDC moves from the pool vault to your wallet

    The shares are burned from your LP position. The position account itself stays open at zero shares — see Closing your position.

This path is all or nothing: it either pays the full amount you asked for or the transaction fails and nothing changes. It is also conditional on three things being true at once, and all three are facts about the pool rather than settings anybody chooses:

  • nobody is waiting in the pool's withdrawal queue,
  • no loan of the pool's has defaulted and not yet been settled,
  • the pool's free cash covers your payout in full.

If any of them is false, the straight-through path is refused and the queue is how you leave.

The withdrawal queue

The queue is not an alternative you opt into — it is what the exit becomes when a pool is fully lent, or when somebody else asked first. It has three steps:

  1. You request a withdrawal, committing the shares

    The shares move out of your position's spendable balance and into a request. They are still yours and still earning: a queued share owns its part of the pool and is priced with it right up to the moment it is redeemed.

  2. The request is processed when the pool can pay it

    Processing is permissionless — a keeper, another lender or you can send it — because tying it to the requester would mean a lost key blocks every exit behind it forever. Requests are served in strict order, oldest first.

  3. You can cancel any time before you are paid

    Cancelling returns the committed shares to your position. You do not have to reach the front of the queue to stop waiting.

A queued withdrawal can be partially filled, and this is the difference that matters most between the two paths. If the pool can pay part of your request, it pays that part now and your remainder keeps its place at the front of the queue. One oversized request therefore slows the queue rather than stopping it, and does not lose its turn for having been large.

Available liquidity

The pool can only pay you out of its quote vault — the idle USDC balance. Money lent out as principal is locked in those loans until the borrowers repay, extend, or the cards are sold.

Not all of the vault is yours to draw on. Two claims rank ahead of the lenders and are reserved before any payout: protocol fees the pool has accrued and not yet paid over, and income the pool has collected but not yet earned. What is left is what a withdrawal can reach.

In practice most pools sit somewhere between 20% and 80% utilization, so you can expect to be able to withdraw a meaningful amount at any time. During periods of high borrow demand, large withdrawals wait in the queue for repayments to top the vault up.

Pause behavior

There are two pause flags and they behave differently, so it is worth being exact about which is which.

A per-pool pause does not stop you withdrawing. It is set by that pool's own admin and it stops money coming in and loans going out — new deposits and new borrowing. It does not close the exit for capital that is already there. That is a deliberate limit on what a pool operator may do with other people's money: refusing new business harms nobody who is already in the pool, and stopping an exit is a decision about somebody else.

A protocol-wide pause does stop you withdrawing, on all three steps — the straight-through path, joining the queue, and being paid out of it.

Withdrawal pricing and timing

Two specific things to be aware of:

  • PPS at execution, not at submission. The PPS used for your payout is computed in the same transaction that pays it. If someone else's repayment lands one block before yours, you benefit from the higher PPS. If a default hits NAV one block before yours, you bear the lower PPS. There is no "lock in PPS" mechanism, and a queued request is no exception — it is priced when it is served.
  • No queuing across pools. Each pool is an independent account with its own vault and its own queue. If you have positions in multiple pools, you withdraw from each separately.

Closing your position

To fully exit, burn all your shares. Your LP position then holds zero shares and the pool owes you nothing.

When you cannot withdraw

You cannot withdraw at all if:

  • The protocol is globally paused. See above; it lapses after 72 hours unless it is renewed.
  • You ask for more shares than you hold, or you hold none.
  • The payout would round to zero — a share count whose exact entitlement is under one micro-USDC is refused rather than burned for nothing.

You cannot take the straight-through path, and are sent to the queue, if:

  • The pool's free cash does not cover the whole amount.
  • Anyone is already waiting in the queue. Being served ahead of someone who asked first is not available at any price, so a non-empty queue closes the instant path for everybody.

Both paths are refused while:

  • The pool holds a loan that has defaulted and has not yet been settled. In that window the pool knows the interest is gone and cannot yet know what the collateral will fetch, so any price it quotes is missing part of the loss. Settlement is permissionless, so this clears as soon as the sale concludes — and the person most motivated to conclude it is whoever is at the front of the queue.

You can still withdraw if:

  • The pool itself is paused. A pool's own admin cannot use their pause to keep your capital.
  • The pool has outstanding loans — you just cannot withdraw the locked principal portion before it comes back.
  • The pool's utilization cap has been lowered, or set to zero. The cap limits what the pool may lend; it is not consulted when you withdraw. Your pool's admin sets that number and cannot use it to keep you in.