Paper supports selling NFTs that accept the USDC token.
Read our guide on How to Price your NFTs in USDC.
Integration
For thirdweb contracts
- Navigate to the thirdweb dashboard for your contract
- Set the claim condition to price the NFT in USDC.

In the Claim Conditions section
For custom contracts
-
Add the following snippet to your contract (modify as needed):
-
// 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); }
-
-
Configure your checkout to accept USDC payment:
- Shareable Checkout Links: When creating the checkout set the Price per NFT currency to USDC.
- One-Time Checkout Links: When creating a One-Time Checkout Link set
mintMethod
with"payment": { "value": "50 * $QUANTITY", currency: "USDC" }
. - 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:
- USDC on Mumbai: 0xe6b8a5CF854791412c1f6EFC7CAf629f5Df1c747
- USDC on Polygon: 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
- USDC on Goerli: 0x07865c6E87B9F70255377e024ace6630C1Eaa37F
- USDC on Ethereum: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
FAQ
How do I acquire Mumbai USDC?
- Go the Mumbai USD Coin contract page.
- Select Connect to Web3 and connect your wallet.
- Open claim (0x4e71d92d) and select Write.
- Sign the transaction with your wallet. This will cost a small amount of MATIC on Mumbai.
- This does not cost real money. Request Mumbai MATIC from a faucet for free.
- 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.