At the end of an auction, successful bidders buyers will be sent a MoonPay link where they can pay in USD for their collectible. Behind the scenes though, MoonPay is actually accepting your USD payment and then sending crypto funds to the a payment contract that we have published on the blockchain ("originated", in Tezos parlance).

The Contract Behind the Scenes

When a token is sold in an auction, a contract is “originated” on the blockchain, with the seller address and Sweet listed as shareholders. You can inspect the contract's source code (written in CamelLIGO) at

When this is deployed to the blockchain, it's compiled to Michelson. Here is an example of our code, deployed as a contract on the blockchain:

If you were to send funds to this contract, you would specify the recipient as KT1UMeW6AW2Jf67TM8ts5TkBEQnVBUh8FuXF.

Thinking about the payment contract again, notice in the code that once the funds are received, anybody can call for the funds to be released. Callers won't be able to send funds to just anyone though − the recipients are specified in storage as the "shareholders":

Sweet is regularly checking the balances of these contracts - even though anyone could call for the release of the funds, we will be fulfilling this role. Once the funds have been successfully sent and if enough funds are sent to satisfy the contract, Sweet then releases the token to be transferred.

Notice in the contract storage, the shareholders include Sweet and the outgoing owner of the collectible being sold. If you sell a token in an auction, a contract like this will be originated on the blockchain, with your address listed here as a shareholder.

Sending Payment to the Contract

In the event that you have Tez and are able, want to, or need to pay outside of MoonPay you can do so following these simple steps.

1. Find the contract address to which you need to send the funds. This can be found in the email or text message that you received from Sweet.

2. Open your Temple or Kukai wallet and Click send.

Note: Be sure that you're sending ꜩ (the native currency of Tezos) and not some other asset. (Maybe you have some "wrapped XTZ" or other variation.) If you're unsure about what's really in your wallet, you can always look at the balance through the eyes of a block explorer, by typing in your own address ("tz…") at

3. Enter the contract address from the email or text message.

4. Determine the correct amount of Tez ꜩ to send using a currency tracker such as CoinGecko. Divide the USD amount owed by the current Tez conversion rate.

5. Enter the amount of Tez ꜩ to send. Confirm your transaction and go.

If the correct amount of Tez is sent, the contract will be complete and the NFT transferred by Sweet to your wallet.

Did this answer your question?