> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sellauth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Crypto Wallets and Payouts

> How SellAuth crypto wallets receive payments, forward them to your own address automatically, and what to do when a payment is not detected.

Every crypto payment method you enable gets a wallet on your shop. Bitcoin, Litecoin, Ethereum and Solana each get their own, and the USDT and USDC stablecoins sit inside their chain's wallet. Buyers pay into that wallet, SellAuth confirms the transaction on-chain, and the funds are forwarded to a payout address you control. There is no payout cycle and no third party holding the coins in between.

Balances, withdrawals and on-chain history live under [**Crypto Wallets**](https://dash.sellauth.com/payouts) in the dashboard.

## How a crypto payment flows

<Steps>
  <Step title="Buyer picks a coin at checkout">
    SellAuth shows an address and the exact amount to send for that invoice.
  </Step>

  <Step title="The transaction is detected and confirmed">
    The invoice sits at **Confirming** while the network confirms it, then moves to **Completed** and is delivered.
  </Step>

  <Step title="Funds are forwarded to your payout address">
    Forwarding happens automatically after a successful payment. No action needed on your side.
  </Step>
</Steps>

## Setting up a coin

Add the coin under **Payment Methods**, then set two things:

**Default payout address.** The address each payment is forwarded to. Required. Check it carefully, since crypto transfers cannot be reversed.

**Underpay percentage.** How far below the invoice total a payment can land and still count as paid, from 1% to 20%. Network fees and price movement between the quote and the transfer mean payments often arrive slightly short. 5% is a reasonable starting point. Higher values complete more orders, at the cost of absorbing a larger shortfall.

<Warning>
  An incorrect payout address sends every future payment somewhere you cannot recover it from. Paste the address and read it back character by character before saving.
</Warning>

## Stablecoins live inside their chain's wallet

SellAuth supports **USDT and USDC on both Ethereum and Solana**, as four separate payment methods: USDT (ERC20), USDC (ERC20), USDT (SPL) and USDC (SPL).

They are not separate wallets. Each one appears inside the Ethereum or Solana card on the Crypto Wallets page, under **Tokens**, because a token balance sits at the same addresses as that chain's coin. USDT (ERC20) is part of your Ethereum wallet; USDT (SPL) is part of your Solana wallet.

Because of that, tokens cannot be moved on their own. Withdrawing the native coin sweeps the configured tokens on that chain in the same operation, which is why Ethereum and Solana always withdraw the full balance rather than an amount you type.

Set a payout address for each token you accept. A token with no payout address stays where it is.

## Tokens need the native coin for gas

This is the part that surprises people, so it is worth understanding before you enable a stablecoin.

Moving an ERC-20 or SPL token costs a network fee, and that fee is paid **in the chain's native coin, from the address holding the tokens**. A buyer paying you in USDT sends you USDT and no ETH. That address therefore has no way to pay for its own transfer.

SellAuth handles this from your own balance rather than charging you separately. When a payout runs, it uses the spare ETH or SOL already in your wallet to cover the fees the token transfers need, then sends everything out. Anything left over stays in your wallet.

That only works if there is native coin in your wallet to pool.

<Warning>
  **If you only ever receive USDT or USDC, and never ETH or SOL, your tokens cannot be withdrawn.** There is no native balance to pay the network fee with, so nothing moves.

  On Ethereum the payout is cancelled outright, with a message about not having enough spare ETH to cover the gas for every token address. On Solana the SOL that is there is kept back as fees rather than swept, so it can accumulate toward a sweep that works.
</Warning>

### Making sure you have gas

**Accept the native coin alongside the token.** Enable Ethereum next to your ERC-20 stablecoins, and Solana next to your SPL ones. Ordinary sales in ETH and SOL then keep your wallet in gas, and automatic forwarding handles the rest without you thinking about it.

**Or seed it yourself.** If your buyers only ever pay in stablecoins, put a cheap product in your shop, buy it yourself paying in ETH or SOL, and let that sit in the wallet as gas.

How much you need depends on the network fee at the time and how much stablecoin is waiting to move, so there is no fixed figure. It is small, and whatever is not spent stays in your wallet.

The dashboard flags this: a token balance with a warning icon next to it is telling you either that no payout address is set, or that the chain has no native balance to cover the transfer.

## Withdrawing manually

Automatic forwarding covers most payments. Manual withdrawal is for the exceptions, such as a payment detected late, or a balance that built up while no payout address was set.

<Steps>
  <Step title="Open the coin's card and click Withdraw">
    Bitcoin and Litecoin let you enter an amount. Ethereum and Solana always withdraw the full balance, tokens included.
  </Step>

  <Step title="Confirm your identity">
    You are asked for your password plus your two-factor code, or an emailed one-time code if two-factor is off. Tick **Remember this device for 30 days** to skip this on the same browser.
  </Step>

  <Step title="Check the address, then send">
    The field is prefilled with your payout address, and can be overridden for a one-off destination.
  </Step>
</Steps>

Bitcoin and Litecoin withdrawals complete within the request. Ethereum withdrawals are queued and run in two stages, funding then sweeping, which can take tens of minutes. The funding stage is where the network fees for the token transfers are covered, which is why it exists and why the wait between the stages is unavoidable. The page shows the current stage and refreshes on its own. Only one withdrawal per coin runs at a time, so the button stays disabled until the current one finishes.

<Note>
  Withdrawing requires the payout permission for that specific coin. Team members without it see the button greyed out.
</Note>

If withdrawals are locked on your shop, the page shows the reason at the top. Contact support if you believe it is a mistake.

## When a payment is not detected

Some payments are not matched automatically, usually because the buyer sent from an exchange that batches transactions, sent the wrong amount, or paid after the invoice expired. The funds still arrive in your shop wallet. Only the invoice needs correcting.

<Steps>
  <Step title="Get the transaction ID from the buyer">
    Any wallet or exchange can show it.
  </Step>

  <Step title="Find it in Transaction History">
    The table at the bottom of the Crypto Wallets page lists every incoming and outgoing transaction across your wallets, with confirmations and a link to the block explorer.
  </Step>

  <Step title="Process the invoice">
    Once the transaction matches the invoice, open it and process it. Processing delivers the items and emails the buyer exactly as an automatic payment would, and the invoice is recorded as manually completed. The same action is covered step by step under [approving a custom method payment](/guides/payment-methods/manual#approving-a-payment).
  </Step>
</Steps>

The funds stay in your wallet and leave with your next withdrawal or forwarding run.

## Reading the two history tables

**Withdrawal History** covers money leaving your SellAuth wallet, whether it was forwarded automatically after a sale or withdrawn by you. Each row carries the amount, its USD value at the time, the recipient address and the transaction ID.

**Transaction History** is the on-chain view of incoming payments and outgoing transfers, with confirmation counts. Use it to confirm that a specific payment arrived.

Both tables link out to a block explorer, so you can send a buyer a verifiable link instead of a screenshot.

## Troubleshooting

**A withdrawal was cancelled for lack of gas.** Your Ethereum wallet does not hold enough spare ETH to cover the network fees the token transfers need. Get some ETH into the wallet and run it again. See [tokens need the native coin for gas](#tokens-need-the-native-coin-for-gas).

**Stablecoin balance never leaves.** The same cause on Solana, where the payout is not cancelled but the tokens stay put and the SOL is held back as fees. It clears once there is enough SOL.

**A token shows a warning icon.** Either no payout address is set for that token, or the chain has no native balance to cover its transfer.

**A payment never arrived.** Look it up by transaction ID in Transaction History, then process the invoice. See [when a payment is not detected](#when-a-payment-is-not-detected).

## Next steps

<CardGroup cols={2}>
  <Card title="Supported payment methods" icon="credit-card" href="/guides/payment-methods">
    Every coin and processor you can accept.
  </Card>

  <Card title="How checkout works" icon="cart-shopping" href="/guides/checkout">
    Invoice statuses, including Confirming and Out of Stock.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.