How the crypto payment system works

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

Daniele avatar
Written by Daniele
Updated over a week ago

Address Generation

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

Our system does not use the cryptocurrency address you have configured in your settings but instead 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 that 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.

Payouts

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

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

Every 24:00 UTC, we pool all the transactions from all the addresses, send balances to Smart Contracts and send a single internal payout to all Sellix merchants, reducing the fees.

What it means for merchants

This system is why, in some instances, if customers send a crypto transaction either after the invoice is voided, or it doesn't confirm in time, the cryptocurrency address might have been re-used for another invoice and its transaction with it, causing a potential loss for the customer.

Did this answer your question?