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

Supported assets

Milky accepts professionally graded trading cards that have already been tokenized as NFTs or pNFTs by a recognized issuer. The specific categories, sets, and graders that are eligible at any moment are controlled by per-pool allowlists, but the underlying model is consistent:

  • The card must be graded by a recognized grading company.
  • It must already exist on-chain as an NFT (Metaplex standard NFT) or programmable NFT minted by a tokenization issuer the protocol recognizes — Milky does not mint, vault, or custody physical cards.
  • The grading certificate must be resolvable to a canonical asset identity that Milky's oracle can price.
  • The NFT must support being locked for the duration of the loan (frozen for standard NFTs, delegate-locked for pNFTs).

Card categories

The protocol is general-purpose, but launch focus is on the largest and most liquid grading-card markets:

  • Pokémon TCG
  • Magic: The Gathering
  • Sports cards — baseball (MLB), basketball (NBA), football (NFL), and similar
  • One Piece
  • Yu-Gi-Oh!
  • Dragon Ball

The active list of accepted collections is enforced on-chain via a collection allowlist maintained per pool. A pool admin can add or remove collections as market and risk conditions change.

Grading companies

Milky relies on grading certificates to identify a specific physical card and its condition. Supported graders include the major firms recognized by the secondary market:

  • PSA (Professional Sports Authenticator)
  • CGC
  • Beckett
  • and other graders the oracle's data sources support

The grade itself materially affects price (a PSA 10 is worth far more than a PSA 9 of the same card), so each combination of card + grader + grade is treated as a distinct asset type for both pricing and risk-concentration purposes.

Where the NFT comes from

A physical graded card cannot be put on a blockchain directly. Milky does not solve that problem itself. Instead, it builds on top of tokenization issuers who already do: third-party platforms that take custody of the physical card, mint an NFT or pNFT representing that card, and bear the operational responsibility for honoring the binding.

The two issuers Milky launches with are:

  • CollectorCrypt — Solana-native tokenization platform that mints NFTs against vaulted graded cards.
  • Phygitals — issuer for graded cards across the major TCG and sports categories.

Other issuers can be added over time; an NFT is eligible for a Milky pool if its collection is on that pool's allowlist and its (NFT, certificate, asset type) binding has been entered into Milky's allowlist tree.

How a card becomes collateral

To put a tokenized card up as collateral, the protocol checks three things at loan creation:

  1. The NFT is the right kind of token

    It must be a standard Metaplex NFT (with a freeze authority) or a programmable NFT (with a delegate slot) that the protocol can lock for the duration of the loan. NFTs that can't be frozen or delegate-locked aren't supported.

  2. The collection is on the pool's allowlist

    If the NFT belongs to a verified collection (typically the issuer's own collection), that collection must be explicitly accepted by the pool you're borrowing from. This lets pool admins concentrate risk into issuers and card categories they've evaluated.

  3. The card is bound to its grading certificate

    A small Merkle proof, built from data that Milky's oracle indexer maintains, is verified on-chain. It proves that this exact NFT corresponds to this exact grading certificate, that this certificate has the asset type the oracle is about to price, and that the binding is part of the protocol's current allowlist root.

The check above ensures Milky lends against the right NFT for the right card. It does not verify the issuer's underlying physical custody — that trust sits one layer below the protocol. See trust assumptions for the full picture.

On-chain representation

For each loan, the protocol's identity for the card is the triple (NFT mint, certificate hash, asset type id). The certificate hash is a deterministic 32-byte digest of the grading cert; the asset type id is a deterministic 32-byte identity for "this canonical card at this grader at this grade". Both are signed into the oracle's quote, so an attacker can't swap a different card mid-flow — the on-chain checks would refuse the trade.

Settlement currency

All loans, repayments, and auction proceeds settle in the pool's quote mint, which today is USDC (a 6-decimal USD-pegged stablecoin). Pools can in principle be configured with other quote tokens, but the production focus is USDC for both pricing simplicity and broad compatibility.

What is not supported

  • Ungraded cards. Milky pricing leans on the certainty that comes with a professional grade; a raw card has no objective condition signal.
  • Cards that have not been tokenized by a recognized issuer. Milky has no path to lend against an off-chain or paper-only card.
  • Cards with unverified collections that aren't on a pool's allowlist.
  • NFT collateral that can't be frozen or delegated — the protocol must be able to immobilize the on-chain token for the loan's duration.
  • NFTs whose binding to a specific grading certificate has not been added to Milky's allowlist root — even if the issuer is recognized, individual cards must be onboarded to the allowlist before they can be used as collateral.

Continue reading