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

# FAQ

> Answers to the most common questions about Blockradar.

## Deposits & Webhooks

<AccordionGroup>
  <Accordion title="My deposit is not showing on the dashboard">
    This is usually a temporary indexing delay. Use the Deposit Finder to manually trigger indexing:

    * **Dashboard:** Go to your Master Wallet → Overview → Click "Deposit Finder"
    * **API:** `POST /v1/wallets/{walletId}/rescan/blocks` with the `transactionHash`

    [Deposit Finder Documentation →](/en/essentials/wallets)
  </Accordion>

  <Accordion title="Webhooks are delayed or inconsistent">
    Webhook delays can occur due to blockchain network congestion, temporary node indexing delays, or your webhook endpoint returning errors.

    To check webhook logs:

    * **Dashboard:** Master Wallet → Developers → Webhook Logs
    * **API:** `GET /v1/wallets/{walletId}/webhooks`
  </Accordion>

  <Accordion title="I sent native tokens (ETH/TRX) — why don't they show up?">
    Blockradar only indexes stablecoins by design. Native token deposits (ETH, TRX, SOL, etc.) won't appear in the dashboard transaction history. However, the funds are still in your wallet and can be viewed on the blockchain explorer or withdrawn via API or dashboard.
  </Accordion>
</AccordionGroup>

## Auto-Sweep

<AccordionGroup>
  <Accordion title="Why did my funds automatically move to the master wallet?">
    By default, `disableAutoSweep` is set to `false`, meaning auto-sweep is enabled. When a deposit arrives at a child address, it automatically sweeps to your master wallet.

    To keep funds in child addresses:

    * Set `disableAutoSweep: true` when creating the address via API
    * Or toggle **Disable Auto Sweep** in the address settings on the dashboard
  </Accordion>

  <Accordion title="I disabled auto-sweep but funds still moved">
    Check both configuration levels:

    * **Master wallet level** — sets the default for all addresses
    * **Address level** — overrides the master wallet setting

    The address-level setting always takes priority. Verify the specific address has `disableAutoSweep: true`.
  </Accordion>

  <Accordion title="Can I set a threshold for auto-sweep?">
    Yes. You can configure sweep thresholds so funds only auto-sweep once a certain balance is reached.

    [Wallet Configuration →](/en/essentials/wallets)
  </Accordion>
</AccordionGroup>

## Gas Fees & Network Costs

<AccordionGroup>
  <Accordion title="How do gas fees work?">
    Gas fees are paid directly to the blockchain in the native token:

    | Chain                            | Native Token |
    | -------------------------------- | ------------ |
    | Ethereum / Base / Polygon / etc. | ETH          |
    | Tron                             | TRX          |
    | Solana                           | SOL          |

    Blockradar does not charge additional fees on top of network costs.
  </Accordion>

  <Accordion title="Why are Tron fees higher than other chains?">
    Tron network fees are typically \$1–6 per transaction due to how Tron handles bandwidth and energy. This is a blockchain-level cost, not a Blockradar charge.

    Lower-cost alternatives:

    * **Solana:** \~\$0.01–0.30 per transaction
    * **Base:** \~\$0.01–0.10 per transaction
    * **Polygon:** \~\$0.01–0.10 per transaction
  </Accordion>

  <Accordion title="The estimated network fee was higher than the actual fee charged">
    The `/withdraw/network-fee` endpoint returns a conservative estimate to ensure transactions succeed even during high network congestion. You are only charged the actual network fee, which is typically lower than the estimate.
  </Accordion>

  <Accordion title="Can I pay gas fees in USDT/USDC instead of native tokens?">
    No, blockchain gas fees must be paid in the chain's native token. However, you can enable gasless withdrawals so your master wallet sponsors gas for child address transactions.
  </Accordion>
</AccordionGroup>

## Gasless Transactions

<AccordionGroup>
  <Accordion title="How do I enable gasless withdrawals?">
    When gasless is enabled, the master wallet pays gas fees on behalf of child address withdrawals.

    To enable:

    * **Master wallet level:** Dashboard → Master Wallet Settings → Enable Gasless Transactions
    * **Address level:** Set `enableGaslessWithdraw: true` when creating or updating an address

    You can also set thresholds so only withdrawals above or below certain amounts are covered.

    [Gasless Transactions →](/en/essentials/withdrawals) · [Address Parameters →](/en/essentials/addresses)
  </Accordion>

  <Accordion title="Which wallet pays gas — master or child address?">
    It depends on the `enableGaslessWithdraw` setting:

    * **Enabled (`true`):** Master wallet pays gas
    * **Disabled (`false`, default):** Child address needs its own gas
  </Accordion>
</AccordionGroup>

## Swaps & Bridges

<AccordionGroup>
  <Accordion title="What swaps are supported?">
    Blockradar supports stablecoin-to-stablecoin swaps only: USDT, USDC, DAI, BUSD, cUSD, cNGN, EURC, IDRX, JPYC

    Native token swaps and bridging are available on all supported chains except Tron.
  </Accordion>

  <Accordion title="I'm getting 'No swap quotes available'">
    This usually means the swap pair isn't supported (e.g. swapping to a native token), or the amount is too small or too large for available liquidity.
  </Accordion>

  <Accordion title="I'm getting 'Wallet not found or not active' on swap">
    This error usually means you're using the wrong asset ID. You need to use the **wallet-specific asset ID**, not a general asset ID.

    To find the correct ID:

    * **Dashboard:** Go to your wallet → Assets → Copy the asset ID from there
    * **API:** Use the asset IDs returned from your wallet details endpoint
  </Accordion>

  <Accordion title="Can I do cross-chain swaps?">
    Yes. You can swap and bridge assets across different blockchains via the dashboard or API. For cross-chain swaps via API, pass the destination master wallet's asset ID as the `toAssetId`.

    [Swap Documentation →](/en/essentials/swap)
  </Accordion>
</AccordionGroup>

## Wallet Setup & Configuration

<AccordionGroup>
  <Accordion title="Can I create multiple Master Wallets for one blockchain?">
    Blockradar allows only one Master Wallet per blockchain network per account. To support an additional blockchain, you must create a separate Master Wallet for it. Within a single Master Wallet, you can create as many child addresses as needed to segment funds by user, application, or purpose. Creating multiple Master Wallets for the same blockchain is not supported.
  </Accordion>

  <Accordion title="Can I delete addresses?">
    No,  addresses cannot be deleted due to blockchain limitations. You can only deactivate them in the dashboard. Deactivated addresses won't receive new deposits or be monitored.
  </Accordion>

  <Accordion title="How do I export private keys?">
    Use the `showPrivateKey: true` parameter when fetching wallet or address details via API.

    <Warning>Only use this in secure, trusted environments.</Warning>
  </Accordion>
</AccordionGroup>

## Withdrawals & Transfers

<AccordionGroup>
  <Accordion title="How do I withdraw from a child address to an external wallet?">
    Use the withdrawal API endpoint: `POST /v1/wallets/{walletId}/addresses/{addressId}/withdraw`

    [Withdrawal Documentation →](/en/essentials/withdrawals)
  </Accordion>

  <Accordion title="My transaction is stuck on 'pending'">
    Common causes:

    * Insufficient gas in the master wallet (if using gasless) or child address
    * Queue processing — transactions process sequentially due to blockchain nonces
    * Node issues — temporary delays

    If stuck for more than 30 minutes, contact support with the transaction ID.
  </Accordion>

  <Accordion title="How do I move funds between master wallet and child addresses?">
    All on-chain fund movements use the withdrawal endpoint. There is no separate "transfer" endpoint.

    * **Master to child:** `POST /v1/wallets/{walletId}/withdraw` with child address as destination
    * **Child to master:** `POST /v1/wallets/{walletId}/addresses/{addressId}/withdraw` with master wallet address as destination
    * **Child to external:** Same endpoint, external address as destination

    [Withdrawal Documentation →](/en/essentials/withdrawals)
  </Accordion>

  <Accordion title="How do I get transaction history for a specific child address?">
    Use the transactions endpoint with the address query parameter:

    ```
        GET /v1/wallets/{walletId}/transactions?address={addressId}
    ```

    [Transactions Documentation →](/en/api-reference/transactions/get-transactions)
  </Accordion>
</AccordionGroup>

## Asset Recovery

<AccordionGroup>
  <Accordion title="I sent funds to the wrong chain or an unsupported asset">
    Use Asset Recovery in the dashboard.

    [Asset Recovery →](/en/essentials/asset-recovery)
  </Accordion>
</AccordionGroup>

## Testnet vs. Mainnet

<AccordionGroup>
  <Accordion title="I sent mainnet funds to a testnet address — are my funds lost?">
    No, your funds are not lost. Mainnet and testnet are separate networks, but addresses are cryptographically linked. You can recover funds using Asset Recovery.

    [Asset Recovery →](/en/essentials/asset-recovery)

    <Tip>Always check the environment indicator in the dashboard (shows "Test Mode" or "Live Mode") before transacting.</Tip>
  </Accordion>

  <Accordion title="How do I switch from testnet to mainnet?">
    1. Use the environment toggle in your dashboard (usually top-right or in wallet settings)
    2. Switch from **Testnet** to **Live**
    3. Create a new master wallet for mainnet
    4. Update your API keys — testnet keys won't work on mainnet

    <Warning>Testnet addresses cannot receive mainnet funds and vice versa.</Warning>
  </Accordion>

  <Accordion title="Where can I get testnet tokens?">
    | Chain              | Faucet                                                                              |
    | ------------------ | ----------------------------------------------------------------------------------- |
    | Ethereum (Sepolia) | [Sepolia Faucet](https://sepoliafaucet.com) or [Alchemy](https://sepoliafaucet.com) |
    | BNB Chain          | [BNB Testnet Faucet](https://testnet.bnbchain.org/faucet-smart)                     |
    | Polygon (Amoy)     | [Polygon Faucet](https://faucet.polygon.technology)                                 |
    | Base               | [Alchemy Faucet](https://www.alchemy.com/faucets/base-sepolia)                      |
    | Tron (Nile)        | [Nile Testnet](https://nileex.io/join/getJoinPage)                                  |
    | Solana             | [Solana Faucet](https://faucet.solana.com)                                          |
    | Circle USDC        | [Circle Faucet](https://faucet.circle.com)                                          |
  </Accordion>
</AccordionGroup>

## API Errors & Troubleshooting

<AccordionGroup>
  <Accordion title="&#x22;Wallet not found or not active&#x22;">
    Common causes:

    * Wrong wallet ID
    * Wrong API key (doesn't match the wallet)
    * Using a general asset ID instead of a wallet-specific asset ID
  </Accordion>

  <Accordion title="&#x22;Internal Server Error&#x22; / 500 errors">
    Usually a temporary issue. If it persists, contact support with the endpoint you're calling, the blockchain/network, and the full error response.
  </Accordion>

  <Accordion title="401 Unauthorized">
    Your API key is invalid or doesn't match the wallet you're trying to access. Check that:

    * The API key is correct (no extra spaces)
    * The API key belongs to this wallet
    * You're not using a testnet key on mainnet (or vice versa)
    * The API key hasn't been rotated or regenerated
  </Accordion>

  <Accordion title="404 Not Found">
    The resource (wallet, address, or asset) doesn't exist or you're using the wrong ID. Common causes include a wrong wallet ID or address ID, using a general asset ID instead of a wallet-specific one, or a typo in the endpoint URL.
  </Accordion>
</AccordionGroup>

## Virtual Accounts & cNGN

<AccordionGroup>
  <Accordion title="How do I set up Virtual Accounts for NGN deposits?">
    Virtual Accounts allow your users to deposit NGN (Nigerian Naira), which automatically converts to stablecoins on-chain.

    Requirements:

    * Must be on mainnet/Live mode (not testnet)
    * Must complete KYB verification

    [Virtual Accounts Documentation →](/en/essentials/virtual-accounts)
  </Accordion>

  <Accordion title="Virtual Accounts not showing in my dashboard">
    Virtual Accounts only appear if you're in Live mode, your account has completed KYB verification, and the feature has been enabled for your account.
  </Accordion>

  <Accordion title="What is cNGN?">
    cNGN is a Nigerian Naira-pegged stablecoin. Blockradar supports cNGN transactions and swaps with other stablecoins.
  </Accordion>
</AccordionGroup>

## Fiat On/Off Ramps

<AccordionGroup>
  <Accordion title="How do users deposit fiat (NGN) and receive crypto?">
    Use Virtual Accounts for NGN:

    1. Generate a Virtual Account for the user
    2. User deposits NGN via bank or mobile money transfer
    3. Funds automatically convert to stablecoins and appear on-chain

    [Virtual Accounts Documentation →](/en/essentials/virtual-accounts)
  </Accordion>

  <Accordion title="Do you support other fiat currencies besides NGN?">
    Currently, Virtual Accounts support NGN only. For other currencies, you would need to integrate with third-party fiat off-ramp providers, this will let you off-ramp to KES, NGN, TZS, UGX, BRL, and MWK. See [Withdraw Fiat](/en/use-cases/withdraw-fiat).
  </Accordion>
</AccordionGroup>

## Feature Requests

<AccordionGroup>
  <Accordion title="Do you support Bitcoin (BTC)?">
    No. Blockradar focuses on stablecoins. Bitcoin is not currently supported.
  </Accordion>

  <Accordion title="Will you add support for a new blockchain or token?">
    Blockradar is blockchain and stablecoin agnostic — additional networks and assets can be integrated upon request. [Contact us](mailto:info@blockradar.co) to discuss your requirements.
  </Accordion>
</AccordionGroup>

## Billing & Subscriptions

<AccordionGroup>
  <Accordion title="Can I pay my subscription with stablecoins?">
    Yes. You can pay via the payment link sent to your email, or withdraw from your master wallet to the payment link address.
  </Accordion>

  <Accordion title="Can I pay by credit card?">
    Currently, we only support stablecoin payments for subscriptions.
  </Accordion>
</AccordionGroup>

## Supported Blockchains & Assets

<AccordionGroup>
  <Accordion title="Which blockchains does Blockradar support?">
    Ethereum, BNB Chain, Polygon, Tron, Base, Arbitrum, Optimism, Solana, Celo, Lisk, Avalanche, Asset Chain, Plasma, and Tempo

    Blockradar is blockchain and stablecoin agnostic — additional networks can be integrated upon request.
  </Accordion>

  <Accordion title="Which stablecoins does Blockradar support?">
    USDT, USDC, DAI, BUSD, cUSD, cNGN, EURC, IDRX, JPYC

    Additional assets can be integrated upon request.
  </Accordion>
</AccordionGroup>

## Developer Tips

<AccordionGroup>
  <Accordion title="What's the difference between wallet ID, address ID, and asset ID?">
    * **Wallet ID:** Identifies your master wallet
    * **Address ID:** Identifies a specific child address within a wallet
    * **Asset ID:** Identifies a specific asset (USDT, USDC, etc.) within your wallet

    <Warning>Always use the wallet-specific asset ID from your wallet's asset list, not a general asset ID.</Warning>
  </Accordion>

  <Accordion title="Best practices for production">
    * Always use mainnet/Live mode for real transactions
    * Store wallet IDs and address IDs in your database
    * Implement webhook handlers for real-time transaction updates
    * Use Deposit Finder as a backup for missed transactions
    * Monitor master wallet balance for gas (native tokens)
    * Enable gasless withdrawals if your users shouldn't need to hold native tokens
  </Accordion>
</AccordionGroup>

## Need Help?

<CardGroup cols={3}>
  <Card title="Documentation" icon="book" href="https://docs.blockradar.co">
    docs.blockradar.co
  </Card>

  <Card title="Dashboard" icon="gauge" href="https://dashboard.blockradar.co">
    dashboard.blockradar.co
  </Card>

  <Card title="Book a Support Call" icon="calendar" href="https://calendly.com/daniel-blockradar/blockradar-tech-support">
    Schedule here
  </Card>
</CardGroup>
