# Fund with a card

Grantor's registry bills in **USDC on Base** — a public contract, not a payment
processor. Nothing about that requires you to already live in crypto: a debit
card and about fifteen minutes gets a fresh wallet funded and a tenant live.
This page is the unguided part, guided.

What you need at the end of it:

- **A wallet you control** — MetaMask, Rabby, Coinbase Wallet, any EVM wallet.
  The connected address becomes the tenant owner, so use one you intend to keep.
- **One asset on Base** (chain id 8453) covering your tier's fee — $0 Free,
  $15 Pro, $45 Scale per period, rates published in the registry contract and
  shown on [the register page](/register.html) before you pay anything.

The simplest shopping list is **just ETH**: your tier's fee worth plus a few
dollars of headroom. The register page swaps ETH to USDC on-chain inside the
same payment transaction you sign, and gas comes out of the same ETH — one
asset, one purchase, done.

Prefer holding the fee in **USDC exactly**? Also fine — then add a couple of
dollars of ETH for gas (Base gas is cents, and the register page's built-in
gas top-up, capped at $0.75 of your payment, keeps you topped up for later
transactions). No ETH at all? A smart wallet (Coinbase Smart Wallet natively,
MetaMask via EIP-7702) pays gas in USDC through a paymaster the wallet
brings — still your own money, no Grantor server involved.

One thing to be clear about up front: when KYC happens, it happens **with the
exchange or onramp — never with Grantor**. There is no account here to attach
it to; the registry only ever sees a wallet address.

## Path A — an exchange you already use (most reliable)

1. Buy ETH with your card or bank transfer on the exchange — Coinbase, Kraken
   and Binance all support Base natively. (Or USDC for the exact fee plus a
   little ETH, if you prefer the two-asset route.)
2. Withdraw to your wallet's address — and here is the one step people get
   wrong: **choose "Base" as the withdrawal network**, not Ethereum. The
   address looks the same on both networks; the funds do not go to the same
   place. If the exchange doesn't offer Base as a network for an asset, use a
   different exchange rather than improvising with bridges.
3. Wait a minute or two, and confirm the funds show in your wallet with the
   network set to Base.

## Path B — buy inside the wallet

Most wallets have a built-in **Buy** button that routes a card payment through
an onramp provider (Coinbase Onramp, MoonPay, Transak and similar) straight to
your address. Select **ETH** (or USDC) as the asset and **Base** as the
network. Fees run a little higher than Path A; time-to-funded is usually
shorter, and there is no withdrawal step to get wrong.

## Already holding crypto that isn't USDC?

You don't need to round-trip through an exchange at all. You can swap
manually on any DEX to USDC on Base today, then follow the steps above — or,
live on Base mainnet now, the [register page](/register.html)'s
pay-with-what-you-have flow does it for you: connect a wallet holding any Uniswap-routable token and
the page quotes the swap, converts it to USDC on-chain, and funds your tenant
in a single transaction you sign — no separate swap step, no aggregator API,
nothing held in custody along the way. Running low on ETH? That same
transaction includes a gas top-up to your address, capped at $0.75 of the
USDC you're already spending, skipped automatically if you don't need it.
Direct USDC stays the first-class way to pay and always will; the swap is a
convenience layered on top, not a replacement for it. One limit: fee-on-transfer
tokens won't work — the swap fails closed and nothing is spent.

## Then register

Go to [the register page](/register.html): connect the wallet, pick a tier,
and the page builds the contract calls — create, approve, top up, draw — for
your wallet to sign. No form, no email, no server of ours in the path.
Agents and CLI-first humans can use the [`grantor-onboard`
kit](../ONBOARD.md) instead; it automates the same steps.

## If the funds landed on the wrong network

Bought or withdrew on Ethereum mainnet by mistake? The funds are safe — same
address, different network — but Ethereum gas to bridge them will likely cost
more than a small top-up is worth. For amounts around a tier fee, the cheap
fix is to buy again, on Base this time, and spend the mainnet USDC elsewhere.
For larger amounts, the official [Base bridge](https://bridge.base.org) moves
USDC from Ethereum to Base.

## Getting money back out

Undrawn balance stays yours: `withdrawBalance` returns it to an address you
choose — see [the refund policy](/refund.html), which is a description of that
function, not a promise from a support desk. The same exchange that sold you
USDC converts it back to fiat.

## The privacy trade, stated plainly

The registry is public: the wallet that creates and funds a tenant is visible
on-chain, and a wallet funded straight from an exchange is linked to your
exchange identity. That is normal and fine for most tenants — administration
is an identified context. The *users and agents* authenticating against your
tenant get the pseudonymous treatment ([wallet login](wallet-login.md),
[user gating](user-gating.md), [agent tokens](agent-tokens.md)); the tenant
owner paying the bill usually doesn't need it.
