Diagram:

Flow explained (for ideal conditions):

  1. A Contributor creates order in the wallet front-end.
  2. Contributor submits KYC and is verified.
  3. Disposable Invoice address is created and displayed in the wallet front-end and sent via e-mail.
  4. The Contributor sends ETH from his ETH wallet to Invoice Address. He sets the Gas Price and pays for it by himself.
  5. Transaction Mining.
  6. Sweeper (separate instance for each project) monitors all invoice addresses and when the transaction is mined, it transfers ETH from invoice address to the Client's address, set in Admin Dashboard of the web wallet.
  7. Transaction Mining (Paid by a Client, the Gas price is hardcoded in sweeper).
  8. Notifier monitors the Client address and when the transaction is mined, sends a signal to transfer tokens to the Contributor's address.
  9. Transaction mining (Paid by a Client, the Gas price set in wallet's admin dashboard).
  10. Tokens are delivered to the Contributors's address. The Contributor is notified via e-mail.
Did this answer your question?