Integrations

WooCommerce plugin.

Accept ETH, USDC and USDT at your WooCommerce checkout. Customers pay from their own wallet straight to yours, and Axle never holds the money.

Download

Axle for WooCommerce

Version 0.1.2 (early beta) · 14 KB · zip

Download the plugin

SHA-256: b4a2c1087bc4e1d6569b6bcb1bd0a63e7b90de5d6ba10cd76ea368254376e8fe

What you need

  • WordPress 6.0 or newer, with WooCommerce installed and active.
  • A store priced in US dollars. The payment option hides itself on other store currencies for now.
  • PHP 7.4 or newer. It has been tested on PHP 8.2.
  • An Axle merchant account with a connected payout wallet, approved for beta payments.
  • Customers pay with a browser wallet such as MetaMask.

Set up in about 10 minutes

  1. In WordPress go to Plugins, Add New, Upload Plugin, choose the zip and activate it.
  2. In your Axle dashboard, connect your payout wallet. Then open the API Keys tab and create a key with the Store plugin access. That access can create payment links and read payments, but it cannot start refunds. Copy the key, which starts with sk_.
  3. In the dashboard's Webhooks tab, add an endpoint for your store and copy the signing secret it shows once. Subscribe it to payment.succeeded, payment.failed and payment.underpaid.
  4. In WooCommerce go to Settings, Payments, Axle (crypto), fill in the fields below, tick Enable and save.
  5. Place a $1.00 test order yourself and watch it move to Processing once the payment confirms.
webhook endpoint for your store
https://YOUR-STORE/?wc-api=axle
SettingWhat to enter
TitleWhat customers see at checkout. Update it if you narrow the accepted coins.
Accepted coinsETH, USDC and USDT are all on by default. Remove any you do not want to take.
Axle API keyThe sk_ key from step 2.
Webhook signing secretThe secret from step 3.
Axle API URLhttps://axle-production-fa2b.up.railway.app
Axle checkout URLhttps://axle-pay.com

How an order works

  1. The customer chooses Pay with crypto at checkout.
  2. The plugin creates a fixed-amount payment link for that order.
  3. Axle's checkout opens in a window. The customer pays from their own wallet, straight to yours.
  4. Axle verifies the payment on-chain. Ethereum payments wait for 12 confirmations, which takes a few minutes, so a payment is not instant.
  5. The plugin reads the payment back, checks the amount matches the order, and moves the order to Processing.

Choosing which coins you accept

Pick the coins your store takes in the Accepted coins setting. With only USDC selected, the checkout offers USDC and nothing else, so customers have nothing to get wrong. With all three selected the checkout offers any of them.

Limits today

  • Dollar-priced stores only.
  • No refund button. A refund is sent from your own wallet and checked by Axle, using the Axle dashboard.
  • Mainnet payments are capped at $10 while Axle is in beta, so larger orders fail at checkout.
  • WooCommerce's hold-stock time should be longer than the time a customer takes to pay, or unpaid orders may be cancelled early.
  • Ethereum only for now. Shopify and other store platforms are not supported.

What has been tested

  • On a local test store: the option shows at checkout, links are created, the checkout window loads, bad webhook signatures are rejected, duplicate events are ignored, and a real test-network USDC payment completed an order.
  • On Ethereum mainnet: one $1.00 order, paid in ETH, was verified by Axle and moved to Processing. That payment was sent from the merchant wallet to itself, so it proves the flow, not a customer paying a merchant.
  • Not yet tried: a public live store, a webhook arriving from a real store, the classic (non-block) checkout, and a mainnet USDC or USDT payment through the plugin.

Help and feedback

This is an early beta, so the most useful thing you can do is tell us what confused you or broke. Write to axlepay.support@gmail.com.