Skip to main content
How the crypto payment system works

Learn more about address rotation, payouts and how invoices are detected.

Daniele avatar
Written by Daniele
Updated over 3 months ago

Address Generation

On the custodial wallet

This answers the FAQ "Why does a different cryptocurrency address appear on the invoice page?".

Our system does not use the cryptocurrency address you have configured in your settings; instead, it creates a unique crypto address for each invoice.

We do this because it's necessary to confirm which transaction has been sent to which invoice. Let's take a look at an example:

This is how our system works

Invoice 1 - Crypto Address A

Invoice 2 - Crypto Address B

Invoice 3 - Crypto Address C

It enables us to know which crypto transaction should complete which invoice since each transaction will have, as the destination, address A, B or C, which means that we should use that tx to confirm invoices 1, 2 or 3.

If, instead, we were to do this

Invoice 1 - Crypto Address A

Invoice 2 - Crypto Address A

Invoice 3 - Crypto Address A

If we were to do this, and one transaction was sent to Crypto Address A, we would not be able to know if it were for Invoice 1, 2 or 3.

This same logic applies even if we were to check for the amount of the crypto transfer because two invoices might have the same or even slightly different amounts. At the same time, what about customers who send more or less than required? We wouldn't be able to handle that.

It might seem infrequent that such a thing happens. Still, it does more than you'd think, and providing a system that works 100% of the time is necessary because, even if the error was present only in 5% of the orders, 5% of hundreds of thousands of invoices that we process every month is quite a lot.

On the Non-Custodial Wallet

  • For BTC-based currencies (e.g., BTC, LTC, BCH), a unique address is generated directly from your wallet, allowing funds to go straight to you with no intermediary.

  • For EVM-based cryptos or tokens (e.g., ETH, TRX, stablecoins on ERC20, TRC20, BEP20), the system displays a Sellix address. Once the funds are received, payouts are processed within 24 hours.

Payouts

On the custodial wallet

Since we've established that we generate unique addresses for each invoice we process for you, it now begs the question: "How and when can I receive my funds?".

Depending on the cryptocurrency of that invoice, we process payouts within 24h or 30m:

  • BTC, LTC, BCH: you can choose when we should send them, either Manually, Daily, Weekly or Monthly

  • ETH, BNB, TRX, MATIC and EVM tokens (USDT, USDC, etc): within 24h

  • Other cryptos: within 30 minutes

On the Non-Custodial Wallet

  • BTC, LTC, BCH: Customer sends the amount to your wallet directly.

  • ETH, BNB, TRX, MATIC, and EVM tokens (USDT, USDC, etc): within 24h

Address rotation and pooling

Glossary

EVM-based cryptos: ETH, BNB, MATIC, TRX, USDT, USDC, APE, SHIB, WETH, DAI, etc.

Fees

One of the issues with cryptos, especially EVM-based ones (ETH..), is fees.

It costs fees to send transactions and more fees if multiple addresses are present (transaction fee = gas * number of txs).

Decentralized payouts

At Sellix, one of our primary goals is to try to reduce this number to near zero, which we've accomplished with many updates in the past, but what do they do exactly?

We have developed our decentralized payment system for EVM-based cryptocurrencies through Smart Contracts, which reduced transaction fees from hundreds of dollars to a few cents for every merchant using Sellix.

Pooling addresses

The system works because we can pool EVM addresses across multiple Sellix stores after previous invoices have been voided or completed.

Taking the example above as a base,

Invoice 1 - Crypto Address A

Created at 12:00, Completed (customer has paid) at 12:30

Invoice 2 - Crypto Address B

Created at 12:10, Pending

Invoice 3 - Crypto Address A

Created at 12:35, Pending

As you can see from the addresses, the crypto address A has been used two times immediately after the previous invoice was cancelled.

By doing this, we have already halved the required fee to send a payout from that address. Repeat this same action hundreds of times daily, and the optimization of payout fees is exponential.

This system is in effect across all merchants, not just merchant-specific addresses.

Payouts

At 24:00 UTC each day, all transactions from pooled addresses are gathered, and balances are sent to Smart Contracts. These balances are then distributed as a single internal payout to all Sellix merchants, minimizing transaction fees for everyone.

What it means for merchants

This system allows us to manage and minimize fees associated with EVM-based token transactions through Smart Contracts and pooled addresses. However, if customers send payments after an invoice has been voided or does not confirm on time, there is a chance that the cryptocurrency address might have already been reused for a different invoice. In such cases, late payments may be incorrectly applied to another invoice, leading to potential losses for the customer.

Did this answer your question?