Cryptocurrency Payments
Scottsdale Mint accepts several cryptocurrencies through the CryptoWoo WooCommerce plugin. Customers can pay for precious metals using Bitcoin, Ethereum, Litecoin, Bitcoin Cash, or Solana.
Pluginโ
- Plugin:
cryptowoo/cryptowoo(fromcomposer.jsonprivate repo) - Version: See
composer.lock - License: Commercial โ per-site license from cryptowoo.com
Supported Cryptocurrenciesโ
| Currency | Symbol | Gateway ID | Network Type |
|---|---|---|---|
| Bitcoin | BTC | cryptowoo_bitcoin | UTXO-based |
| Ethereum | ETH | cryptowoo_ethereum | EVM |
| Litecoin | LTC | cryptowoo_litecoin | UTXO-based |
| Bitcoin Cash | BCH | cryptowoo_bitcoin_cash | UTXO-based |
| Solana | SOL | cryptowoo_solana | SPL-based |
Payment Flowโ
Step 1 โ Customer Selects Cryptoโ
At checkout, the customer selects their preferred cryptocurrency payment method.
Step 2 โ Address Generationโ
CryptoWoo generates a unique payment address for this specific order:
- Each order gets a deterministic unique address (HD wallet path-based โ no address reuse)
- The address is displayed at the "Thank You" / order confirmation page
- A QR code is shown for wallet scanning
Step 3 โ Customer Sends Cryptoโ
The customer sends the exact crypto amount (converted from USD at current rates) to the displayed address. The cryptocurrency amount and USD rate are locked in for a configurable window (e.g., 15 minutes).
Step 4 โ Confirmationโ
CryptoWoo monitors the blockchain for transactions to the generated address:
- If payment is detected within the time window: order moves to
wc-pending-cryptoโwc-processingafter required confirmations - If payment arrives late or with wrong amount: order is flagged for manual review
- If no payment arrives: order moves to
wc-cancelledafter the window expires
Order Statusesโ
| Status | Condition |
|---|---|
wc-pending-crypto | Payment address displayed, awaiting blockchain transaction |
wc-processing | Required confirmations received, payment confirmed |
wc-cancelled | Payment window expired with no transaction |
Currency Conversionโ
The crypto amount is calculated at checkout:
- USD order total is fetched
- Current BTC/ETH/LTC/etc. to USD exchange rate is fetched from CryptoWoo's configured exchange
- The exact crypto amount required is displayed to the customer
- Rate is locked for the payment window duration (configurable, default 15 minutes)
Configurationโ
CryptoWoo settings are in WooCommerce โ Settings โ CryptoWoo and in the individual gateway settings panels.
Key settings:
- HD Wallet xPub key โ per-currency; generates unique payment addresses
- Exchange API โ which exchange to use for USD rate fetching
- Confirmations required โ minimum blockchain confirmations before payment is accepted (default: 1 for LTC/BCH, 3 for BTC, 12 for ETH)
- Payment window โ how long customer has to send (default: 15 minutes)
- Under-payment threshold โ percentage tolerance for slightly under-paid amounts
Patch Appliedโ
The patches/ directory contains:
0001-Dev-CryptoWoo-Disable-Requests.patch
This patch disables certain HTTP requests made by CryptoWoo that are unnecessary in the Lambda serverless environment or that cause timeouts. It is automatically applied via Composer's cweagans/composer-patches.
Admin Monitoringโ
The CryptoWoo plugin adds a "CryptoWoo" menu to the WP admin with:
- Live payment monitoring dashboard
- Transaction log (address โ payment received โ confirmations)
- Exchange rate history
- Failed payment log
Refundsโ
Cryptocurrency payments cannot be refunded programmatically. If a refund is required:
- Admin marks the order as refunded in WooCommerce
- The accounting team manually sends crypto back to the customer's provided address (or equivalent USD via another method)
Document the refund reason and customer-provided return address in the order notes.
Troubleshootingโ
| Issue | Action |
|---|---|
| Payment window expired but customer sent | Check CryptoWoo transaction log; manually mark as paid if confirmed on blockchain |
| Wrong crypto amount detected | Check xPub key is configured correctly; check exchange rate source |
| No QR code showing | JavaScript error on "Thank You" page; check browser console |
| Solana not appearing at checkout | Verify cryptowoo_solana gateway is enabled in WC settings |