Accepting DeFi token payments: the token, not the position
People who use DeFi apps often hold governance tokens — UNI, AAVE, ENA and the like — and some would rather pay with them than swap first. easyway accepts 8 of these tokens on Ethereum through the same checkout and API as ETH and USDT. The catch is that a DeFi wallet is full of tokens that look related: staked versions, deposit receipts, LP shares. Only the plain token pays an invoice. This post lists which ones count, which ones don't, and what it costs.
The eight DeFi tokens that count
| Token | Contract | Typical wait | Smallest payment counted | Withdrawal fee / min. |
|---|---|---|---|---|
| Uniswap (UNI) | 0x1f98…F984 | 12 confirmations, ~3 min | 0.001 UNI | 0.25 / 0.08 UNI |
| Aave (AAVE) | 0x7Fc6…DaE9 | 12 confirmations, ~3 min | 0.0001 AAVE | 0.013 / 0.004 AAVE |
| Curve DAO (CRV) | 0xD533…cd52 | 12 confirmations, ~3 min | 0.01 CRV | 5.5 / 1.6 CRV |
| Ethena (ENA) | 0x57e1…6061 | 12 confirmations, ~3 min | 0.02 ENA | 9 / 2.6 ENA |
| Ondo (ONDO) | 0xfAbA…9BE3 | 12 confirmations, ~3 min | 0.01 ONDO | 4.5 / 1.3 ONDO |
| Pendle (PENDLE) | 0x8085…a827 | 12 confirmations, ~3 min | 0.01 PENDLE | 1.15 / 0.35 PENDLE |
| ether.fi (ETHFI) | 0xFe0c…c0eB | 12 confirmations, ~3 min | 0.01 ETHFI | 3 / 0.9 ETHFI |
| 1inch (1INCH) | 0x1111…C302 | 12 confirmations, ~3 min | 0.1 1INCH | 24 / 7 1INCH |
All eight are ERC-20 tokens on Ethereum mainnet. The full addresses are on each token's page and in the API docs; each one was taken from the project's own documentation (for 1INCH, Trust Wallet's token list) and checked against CoinGecko. A payment is final after 12 blocks. A single transfer under the smallest counted amount is ignored as dust (usually a spam airdrop), while several larger transfers to the same invoice add up.
Staked, locked and LP tokens are not the token
Every DeFi protocol issues more than its governance token. When a user stakes, lends or provides liquidity, they get a receipt token back, and wallets list those receipts right next to the real thing. None of them pays an invoice for the governance token:
| Token accepted | Often held next to it — not credited |
|---|---|
| UNI | Uniswap liquidity positions |
| AAVE | stkAAVE (staked), aEthAAVE (deposit token) |
| CRV | veCRV (locked, not transferable), crvUSD (stablecoin) |
| ENA | sENA (staked), USDe and sUSDe (the dollar tokens) |
| ONDO | USDY, rUSDY, OUSG (Ondo's tokenized products) |
| PENDLE | PT and YT tokens, Pendle LP tokens |
| ETHFI | eETH and weETH (restaked ETH), eBTC |
| 1INCH | the copy at the same address on BNB Chain |
Some of these can't be sent at all (veCRV is locked by design), some are worth far more than the governance token (eETH and weETH track ETH), and some are a different asset entirely (USDe is a dollar token; easyway accepts it, but as a coin of its own). If a receipt token is sent to an invoice address, it stays there and the invoice stays open. The customer has to unstake or withdraw first and pay with the plain token.
Ethereum only
Most of these tokens also exist on layer-2 networks and other chains as bridged copies, at other addresses. Only the Ethereum mainnet contract is credited; the 1INCH token even has a copy at the very same address on BNB Chain, so the address alone does not tell you the network. Customers paying from an exchange must pick Ethereum (ERC-20) in the withdrawal menu — the guide to paying from an exchange shows where. Payments from a smart-contract wallet or a swap app are fine: the gateway watches the token balance of the invoice address, not the shape of the transaction.
Voting power doesn't matter either. Many of these are vote-carrying tokens, and a customer may have delegated their votes to someone. Delegation stays with the customer's wallet; the tokens they send arrive as ordinary tokens.
Credited in the token, priced in dollars if you want
You can price the invoice in USD — the token amount is calculated from the current rate when the customer picks the coin and stays locked until the invoice expires (see pricing an invoice in USD or in the coin) — or in the token itself, for example currency = "ETHFI_ERC20" for a community that thinks in ETHFI. Either way the payment is credited as that token: 200 ETHFI received leaves 199 ETHFI on your balance after the flat 0.5% fee. There is no automatic conversion, so later price moves are yours. If you don't want to hold governance tokens, withdraw them soon after payment (live withdrawals only go to addresses you whitelisted with two-factor authentication), or offer a stablecoin next to them.
A DeFi checkout with a stablecoin fallback
allowed_assets sets which coins the checkout offers for one invoice. A tool sold to DeFi users can show four governance tokens plus USDC and USDT, all on Ethereum, so a customer who would rather not spend their tokens still has a choice:
curl -X POST https://api.easyway.cash/v1/invoices \
-H "Authorization: Bearer $EASYWAY_API_KEY" \
-H "Idempotency-Key: order-7310" \
-H "Content-Type: application/json" \
-d '{"amount":"49","currency":"USD","order_id":"7310","allowed_assets":["UNI_ERC20","AAVE_ERC20","ENA_ERC20","ETHFI_ERC20","USDC_ERC20","USDT_ERC20"],"lifetime":30}'Redirect the customer to the payment_url in the response and deliver when the signed invoice.paid webhook arrives. The rules and error codes are in limiting a checkout with allowed_assets, and the quickstart has the same call in Node.js, PHP and Python. A payment link does it without code.
What it costs
The customer pays the Ethereum gas of their own transfer. You pay a flat 0.5% of each confirmed payment and a fixed withdrawal fee in the token (first table), which covers the gas of one token transfer. No setup or monthly fee — the same as every coin on the pricing page.
easyway is an independent payment gateway with no link to these protocols. It lists their tokens because customers hold them, and says nothing about what they are worth.