<!-- https://zerolog.ch/docs/wallet · Docs / Money -->
# Wallets, and how to get USDC

The payment page supports USDC on Solana. Available wallet and card routes, fees and identity checks are shown by the payment provider before you pay. Confirmation time depends on the network and the provider; an immediate credit is not guaranteed.

## What a wallet actually is

In a self-custody wallet, you control the signing keys. In a custodial account, a provider controls them for you. The distinction concerns your wallet: ZeroLog's merchant settlement uses a custodial Bybit account. See [Payments and privacy](https://zerolog.ch/legal#pp-3-3).

One key pair, two faces of the same fact

The public half

The address. It is what an exchange withdraws to.

The private half

The rest of the pair, sitting on your device in the extension or the app.

Control your signing keys.

Keep your recovery method safe.

The same sentence, read from two sides

Write the recovery phrase down on paper and keep it away from the computer.

Self-custody does not remove token-issuer restrictions. Circle can block USDC addresses under its [USDC terms](https://www.circle.com/legal/usdc-terms). ZeroLog cannot recover a lost private key or reverse a blockchain transaction.

## USDC on Solana, not the other USDC

The network matters as much as the coin. A wallet that speaks Solana is what you want: Phantom and Solflare are the common ones.

- **USDC** Solana *This is the one you need*
- **USDC** Ethereum
- **USDC** Base
- **USDC** Polygon

USDC exists on Ethereum, Base, Polygon and others too, and those are different tokens as far as the payment is concerned.

## Where to buy it

Before using an exchange or onramp, check its eligibility rules, fees, withdrawal limits and privacy terms. The payment route also requires both of these:

- It sells USDC.
- It lets you withdraw to a Solana address.

If you already use a provider, check that it supports the required withdrawal. Choose **Solana** as the network and verify the address on the payment page.

## Identity checks depend on the provider

A provider may request identity documents or further checks based on its rules, your country and the transaction. ZeroLog does not promise that checks happen only once, on every payment, or never.

From a wallet

Your exchange and the payment service may apply their own checks.

MoonPay card route

The provider tells you which identity checks apply before completing payment.

## A transfer cannot be undone

Sending to a wrong address loses the money, and no support desk can reverse it.

Send a small amount first, the first time you use a new address.

Network, exchange and payment-provider fees can differ. Review the current quote and any minimum payment before approving a transfer.

## Topping up, once the USDC is there

1. 01

   Pick the amount.
2. 02

   Open the payment page.
3. 03

   Approve the transfer in your wallet.

The credit appears when the payment confirms.

## Getting USDC to the payment page

Mermaid source of the diagram on this page:

```mermaid
%% Wallet: paying a top-up from your own wallet. Facts from the docs page, server/moonpay.js (USDC on Solana).
flowchart TB
  b["Buy USDC at an exchange<br/>or onramp (your choice)"]
  n{"Can it withdraw USDC<br/>to a Solana address?"}
  other["Pick another provider;<br/>USDC on other chains<br/>does not work here"]
  w["Withdraw to your wallet<br/>network: Solana"]
  p["Pick the amount,<br/>open the payment page"]
  ok["Approve the transfer<br/>in your wallet"]
  conf["Provider confirms;<br/>credit appears"]:::hot

  b --> n
  n -->|no| other
  n -->|yes| w --> p --> ok --> conf

  classDef hot stroke:#8f7ac9
```
