Optimism

Accept ETH payments on Optimism.

Offer Optimism payments from your own checkout. Price an invoice in fiat, and let the customer pay with the enabled methods in your store.

At a glance

Native coin
ETH
Accepted tokens
Verified ERC-20 tokens
Fee currency
ETH
Payment reference
New address per invoice
Wallet setup
Project wallet
Manual send / auto sweep
Supported with compatible providers

What you can receive

Use OP Mainnet and its verified contracts. The same token ticker on a different network is not the same payment method. Token sending needs ETH on OP Mainnet.

Set up your store

  1. Install Wholly Crypto, create a project and store, and keep a private wallet backup.
  2. Check scanner-compatible connections and enable the chain and intended assets in Store → Payment methods.
  3. Set confirmations and expiry. Test a small invoice and verify settlement before fulfilling orders.
First project & invoice

Where your payments arrive

Invoices use separate receiving addresses. Keep the complete backup, address list and derivation details; an imported wallet may not discover every invoice address immediately.

Wallet setup guide

Move funds when you are ready

Manual sends and automatic sweeps support the native coin and verified ERC-20 tokens. Each token source needs this network’s native coin for gas. Project-funded gas can cover eligible sources within your limits.

Automatic sweep tutorial

Payment troubleshooting

Check this network first

Select OP Mainnet. Sending needs ETH, not OP tokens, for fees. Verify that the destination supports deposits on this network.

A payment is missing or delayed

Match the network, address, asset and any required reference to the invoice. Check scanner readiness and confirmation progress. Do not ask for a second payment until you have checked the first transaction.

Receiving guide
Restore or consolidate wallets

Keep your private backup and derivation details. A different wallet app may not display every receiving address. Sending and recovery depend on the chain and wallet format; neither is guaranteed by importing recovery words alone.

Backup & restore

Fees and verification

The default processing fee is 1% of the invoice’s fiat value, paid from separate credits. Your assigned rate applies. Network fees and server costs are separate.

Public providers can have outages or rate limits. A submitted transaction or return redirect is not proof of payment. Use the verified invoice status and signed notifications.

Processing credits API, IPN & webhooks
Rates calculator

Convert an amount

From
To
Estimated value…

Loading rates…

    An estimate, not a payment quote. Network fees, exchange fees and merchant spreads are not included.

    Where do the rates come from?

    Crypto estimates use cached public Kraken prices, with Binance where available. Some Binance prices use USDT as a USD reference. Fiat rates come from Frankfurter and are daily reference rates, not live trading quotes.

    The snapshot refreshes automatically. Check the source dates below your result. Your entered amount stays in your browser. Asset listings do not guarantee payment support.

    Kraken · Binance · Frankfurter · Asset names & icons: CoinGecko

    Choose a currency

    Create an invoice with the API

    Run these examples on your server. Replace the API host, project ID and store ID, and keep the credential private. Amounts are decimal strings.

    Enable the method in the store first. Selection narrows enabled methods; it does not add assets. If nothing matches, store defaults apply. Check the returned methods before presenting checkout.

    : "${WHOLLY_TOKEN:?Set WHOLLY_TOKEN to your server-side API token}"
    # Keep this key and the exact body for retries; use a new key for each new invoice.
    curl --fail-with-body --max-time 30 \
      --request POST \
      --url "https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices" \
      --header "Authorization: Bearer $WHOLLY_TOKEN" \
      --header 'Idempotency-Key: order-1042-attempt-1' \
      --header 'Content-Type: application/json' \
      --data-raw '{
      "amount": "25.00",
      "currency": "EUR",
      "order_id": "order-1042",
      "payment_methods": [
        {
          "chain_slug": "optimism",
          "asset_tickers": [
            "ETH"
          ]
        }
      ]
    }'
    Full invoice API reference Project & store IDs API, IPN & webhooks