Paper supports selling NFTs that accept the USDC token.


Read our guide on How to Price your NFTs in USDC.


For thirdweb contracts

  1. Navigate to the thirdweb dashboard for your contract
  2. Set the claim condition to price the NFT in USDC.
In the **Claim Conditions** section

In the Claim Conditions section

For custom contracts

  1. Add the following snippet to your contract (modify as needed):

    1. // Replace MY_USDC_ADDRESS with the address based on the blockchain below.
      IERC20 public usdc = IERC20("0xe6b8a5CF854791412c1f6EFC7CAf629f5Df1c747");
      uint256 priceInUsdc = 50 * 10 ** 6
      function mintTo(address recipient, uint256 quantity) public {
        usdc.transferFrom(msg.sender, address(this), quantity * priceInUsdc);
  2. Configure your checkout to accept USDC payment:

    1. Shareable Checkout Links: When creating the checkout set the Price per NFT currency to USDC.
    2. One-Time Checkout Links: When creating a One-Time Checkout Link set mintMethod with "payment": { "value": "50 * $QUANTITY", currency: "USDC" }.
    3. Checkout Elements: When creating a Client Secret set mintMethod with "payment": { "value": "50 * $QUANTITY", currency: "USDC" }.

Accepting the correct USDC token

Make sure your contract requests the correct USDC token address from Paper. These are the supported USDC token addresses:


How do I acquire Mumbai USDC?

  1. Go the Mumbai USD Coin contract page.
  2. Select Connect to Web3 and connect your wallet.
  3. Open claim (0x4e71d92d) and select Write.
  4. Sign the transaction with your wallet. This will cost a small amount of MATIC on Mumbai.
    1. This does not cost real money. Request Mumbai MATIC from a faucet for free.
  5. You should receive 100 USDC. You can request multiple times per day.

How do I acquire Goerli USDC?

You can request Goerli USDC from a faucet here.