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

Frequently asked questions

Short answers to the most common questions. For deep dives, follow the links to the relevant sections.

About Milky

What is Milky?

Milky is a Solana-native lending protocol that turns graded trading cards into productive collateral. Borrow USDC against your cards without selling them, or earn yield by lending into card-backed loans. See About Milky.

Which networks does Milky run on?

Solana. The on-chain program is an Anchor-based Solana program; loans, pools, and auctions are all Solana accounts.

What stablecoin do loans use?

USDC. Pools can in principle be configured with other quote tokens, but production focus is USDC.

Is Milky open source?

The on-chain program is reviewable today; the open-sourcing plan for the rest of the stack is part of the production roadmap. See Resources for live links.

Who actually holds the physical cards?

Not Milky. The physical graded card sits with the tokenization issuer that minted the NFT — today, CollectorCrypt or Phygitals. Milky lends purely against the on-chain NFT and trusts the issuer to keep the card vaulted and to honor redemptions. This is the largest non-protocol trust assumption in the system; see risks and trust assumptions.

Borrowing

How much can I borrow against a card?

Up to FMV × LTV / 10,000, capped further by the pool's max_principal_per_card and the global protocol limits. With the default 70% LTV and a card priced at $1,000 by the oracle, the headline maximum is $700.

What's the interest rate?

It's set per term option by the pool you borrow from. Different terms have different rates. The protocol allows up to 220% APR per term; production pools operate well below this.

What happens if I'm a day late?

You're inside the grace period (typically 7 days). You can still repay on the original terms. Once the grace period expires, the loan is eligible for default — anyone can submit a transaction that flips it into auction. See default and liquidation.

Can I sell my card while it's collateral?

No. From the moment you draw, the on-chain NFT is locked under the protocol's authority. You can't transfer or sell it. The issuer (CollectorCrypt or Phygitals) only redeems the physical card against the NFT, so you also can't pull the physical card from their vault while the loan is open.

Can I repay early?

Yes, at any time after drawing. There's no early-repayment penalty. But the interest is fixed, so there's also no early-repayment discount.

Are there other fees besides interest?

Yes — an origination fee withheld at draw, computed as a percentage of the interest amount (default 2%, capped at 5%). No late fees, no prepayment penalties.

Can I borrow against ungraded cards?

No. Only professionally graded cards are supported. Pricing relies on the certainty that comes with a professional grade.

Lending

Can I deposit into any pool?

Today, no — only the pool admin can deposit into a given pool. Multi-LP deposits are an active roadmap item. See the single-LP note.

What's my expected APR as an LP?

Variable. The headline APR shown in the app is a forward-looking estimate based on current pool composition; realized returns depend on borrow demand, default rates, and auction recoveries. See yield, utilization & risks.

Can I withdraw any time?

You can submit a withdrawal any time, but the pool must hold enough idle USDC in its vault to cover the amount. If utilization is high, larger withdrawals may need to wait for repayments.

Are LP withdrawals blocked when the protocol is paused?

No. Withdrawals are intentionally not pause-blocked. Pauses only stop new loans and new deposits.

Auctions

What kind of auctions does Milky use?

Production default auctions are Dutch — descending price, first bid wins, runs about 5 minutes. The on-chain program also supports English auctions but production keepers don't use them today. See Dutch auctions.

Can I bid on a defaulted card?

Yes. Anyone can bid in a Milky auction. The Milky app's Premium section surfaces active auctions and lets you bid through a single bundled transaction.

Do borrowers get any of the auction proceeds?

No. Once a loan defaults, the borrower has no claim on auction proceeds. Surplus above the debt is split between the protocol and the pool. See settlement and waterfall.

What happens if no one bids?

The card moves into pool-held custody. The pool admin then disposes of it through a separate process. See no-bid outcome.

Oracle and pricing

Where do card prices come from?

Primarily from Alt.xyz, with optional secondary aggregation through CardHedger. See data sources.

How fresh is a quote?

Default TTL is 5 minutes. The protocol checks expiry both at loan creation and again at draw, so a stale quote can't be turned into an active loan.

Can the oracle sign whatever it wants?

In principle yes — within the protocol's caps. The on-chain program verifies the signature, the allowlist binding, the LTV ceilings, and the principal limits, but it doesn't have an independent view of "what this card is really worth". See trust assumptions.

Risks

What's the worst that can happen as a borrower?

You lose the card. If you don't repay before maturity plus grace, the card goes to auction and you receive nothing. See risks.

What's the worst that can happen as a lender?

A series of auction shortfalls, a no-bid auction that ends up with the pool stuck holding a hard-to-sell card, or an oracle failure that causes the pool to over-lend. See risks.

Has the protocol been audited?

External audit is part of the production launch path. The current code has been extensively reviewed internally and has comprehensive tests covering happy paths, edge cases, and adversarial scenarios.

Where do I report a security issue?

See Resources for current security disclosure channels.