Delivery vs. Payment (DvP)
Last updated
Last updated
This function is going live soon. Until this DvP function is launched, you can use the token sale function as a DvP contract.
When a buyer buys an asset from the seller, there is usually counterparty risk involved – especially in over-the-counter (OTC) trades. Either the buyer makes the payment as a first step and waits for the delivery of the asset, or the seller delivers the asset and waits for the payment.
In both cases the counterparty may go bankrupt or simply disappear before the transaction is fully settled. On-chain DvP settlement solves such issues by allowing instant settlement between parties through so-called atomic swaps.
Programmatic and instant delivery vs. payment (DvP) settlement allows you to eliminate the counterparty risk from token transactions. The DvP contract that you can configure acts as an escrow. Each party will only receive their tokens if both parties have transferred their respective asset to the DvP contract.
The Delivery versus Payment (DvP)Settlement function on Token Tool ensures a simultaneous exchange of assets and payments, providing a secure and efficient settlement process. This feature guarantees that the transfer of tokenized assets and the corresponding payment occur at the same time, minimizing risks for both buyers and sellers.
Key Features and Security
Simultaneous exchange: Ensures the asset delivery and payment occur in a single, atomic transaction.
Smart contract enforcement: Utilizes smart contracts to enforce the terms and conditions of the DvP, providing a transparent and immutable transaction record.
Risk mitigation: Minimizes counterparty risk by ensuring that both parties fulfill their obligations simultaneously.
Below is a step-by-step guide on how to use the DvP settlement function.
Set the token price
Navigate to the DvP section and connect your wallet. Make sure you're connected to the right network on both Token Tool and in your wallet.
Choose the delivery token (the token that is being sold to a buyer) via the drop-down or by pasting the smart contract address. Then click continue.
Choose the payment token from the available options or enter a custom token address. Ensure that the token does not have holder rewards, transaction fees, or burn fees to be compatible with the DvP settlement function. If these features are available, make sure you set the rate to 0 before creating the DvP contract.
Set investment details
Specify the price, indicating how many delivery tokens the buyer will get for one unit of the payment token. For example, 1 EURC = 100 NNT.
Define the minimum and maximum investment amounts in the payment token (e.g., EURC). If no limits are required, set the value to 0.
Set the DvP start time by selecting the date and time from the calendar.
Set DvP Duration
Define the DvP duration in days, which will automatically calculate the DvP end time.
The DvP contract owner address is by default the connected wallet. You can also change the DvP owner address to specify another wallet address that will manage the DvP settlement contract.
Agree to T&Cs and create DvP settlement
Agree to the Token Tool Terms & Conditions by checking the respective box.
Click on the "Create delivery vs payment" button to finalize and create the DvP contract.
Confirm transaction in your wallet to pay fees. Once the transaction is processed, you will receive your DvP settlement contract details on the Token Tool Interface.
The DvP function on Token Tool is an essential feature for secure and efficient token transactions. By following the outlined steps, users can easily set up and manage DvP transactions, ensuring a seamless and risk-free exchange of digital assets and payments.
Once the DvP contract has been created and the transaction is processed, you will receive a pop-up modal displaying the DvP contract address and the blockexplorer link of the transaction. Make sure to save the DvP contract address as you will need to be able to manage the DvP contract:
To manage an existing DvP contract, simply go to the Delivery vs Payment page on Token Tool and paste the DvP contract address under the "Display existing Delivery vs Payment" section.
After that, click "Continue" and you will be redirected to the Delivery vs Payment page. This page serves as the DvP contract management section for the DvP contract owner (I.e. the seller), and as the buyer interface through which the token can be bought via the DvP contract:
In order for the buyer to be able to buy tokens, the DvP contract must first be topped up with the desired token amount. To do so, scroll down to the "Manage DvP" section and click the "Top up" button:
Insert the amount to be topped up and then click "Submit". You will need to approve access to tokens in your wallet in an intial step. Once the approval transaction is processed, click "Submit" again and approve approve the transactionransaction in your wallet to finalize the top up.
After the transaction is complete, you will receive a success message and the DvP contract balance will be updated accordingly:
The DvP contract is now ready for buyers to buy the tokens. You can redirect buyers to the DvP Page Link for them to start buying your tokens. They can simply insert amount to buy and confirm the transaction in their wallet after clicking "Buy".
When a buyer buys a token from the DvP contract, the transaction is settled instantly via so-called "atomic swaps". This means that, after the transaction is processed by the network, there will be a simultaneous exchange of assets. The seller will automatically receive the funds to the wallet address owning the DvP contract; and the buyer will receive the tokens from the DvP contract address to the wallet connected.