Implementing a fiat-based payment system
In a fiat-based payment processor, a buyer deposits fiat currency to their account using your application. The payment processor mints a corresponding amount of an off-chain token in the buyer’s vault, with the buyer’s public Stark key. The buyer can use those off-chain funds to pay a merchant for goods and services.
After the buyer has transferred a payment to the merchant, the merchant can withdraw the funds. Alternatively, the buyer can withdraw any unused funds at any time.
The payment processor defines the following:
the fiat currencies that the system supports
the corresponding StarkEx-based off-chain asset
The StarkEx version of the fiat currency is generated dynamically in StarkEx when executing a transaction, so it’s not based on any on-chain stable coin.
Alice uses your application to deposit 100 USD to her account. The application mints the equivalent of 100 USD in a StarkEx-based token, specifying a vault id and Alice’s public Stark key. Alice now has what appears to her to be 100 USD in her account that she can use to pay for goods and services.
This type of payment processor uses the following types of transactions:
The mechanism for depositing fiat currency into the system and withdrawing it from the system are not implemented with StarkEx.
For information on the flows and the API calls that you must implement in your payment system, see the following topics: