One of the most unique aspects of Dtravel is our decentralized payments infrastructure. While other vacation rental booking platforms manage and control payments centrally, Dtravel never has access to payments at any point in the booking process.
Instead, we provide the tools to facilitate peer-to-peer payments between hosts and guests on the blockchain, meaning members rely on code rather than a corporation.
Powering this automated payment flow are smart contracts on the BNB Smart Chain (BSC), which are automated by following a simple logic: “if X occurs, then Y happens.” The contract is executed once a call is made to the contract to signal a booking being requested.
In this article, we’ll detail our smart contract design for listings and bookings, share how we arrived at this design, and discuss the benefits of using on-chain payments in conjunction with smart contracts.
When a property is listed on Dtravel, a unique smart contract is deployed for each listing. Deploying a smart contract is an on-chain transaction, which requires transaction fees to be paid. Since Dtravel’s smart contracts live on BSC, deployment is efficient and costs only a few cents. In comparison, the deployment fee on the Ethereum network averages hundreds of dollars and can reach into the thousands, depending on contract complexity.
To deploy a smart contract for the listing, a host simply has to select the properties they want to list and click “Deploy” in their Dtravel account. The Dtravel backend will automatically deploy the contract by signing a contract deployment transaction and paying the transaction fee. This way, hosts can proactively deploy their properties with no time lag or dependency on an operations team to approve the listing.
When creating a listing, the host also specifies parameters that determine the payment rules, including the price per night, cleaning fee, cancellation policy, and more. This information can be updated at any time.
When a guest makes a booking on Dtravel, the details of that booking (amount paid, cancellation policy, etc.) will be signed and included in the on-chain booking transaction, along with the booking payment. The transaction will then be sent to the listing’s smart contract and the booking details will be stored in the contract. Only a single transaction is required to place a booking, allowing transactions to be quickly confirmed and processed.
From this moment on, the guest’s booking payment is held in the smart contract and handled by predefined rules of the smart contract. As soon as the cancellation period ends, the smart contract will automatically release the funds to the host (provided the guest doesn’t cancel within this period).
When deciding how best to streamline the deployment of the smart contract for each listing, we knew creating a simple user experience that all hosts could easily follow would be our biggest challenge.
We considered several variations of the following two options:
Option 1: Dtravel deploys the smart contract and signs the deployment transaction.
Option 2: The host signs the deployment transaction via their non-custodial wallet.
Choosing Option 1 provides a simpler user experience and minimizes friction during the listing creation process, which can heavily influence perceptions of Dtravel early on. If the set up process is too complicated, hosts won’t use it. However, this option doesn’t fully fit our decentralized ethos, as the smart contract is technically deployed by Dtravel and not the host themselves.
Opting for Option 2, on the other hand, is more aligned with our vision, since hosts have complete ownership of the smart contract. This also comes with its drawbacks, as hosts would need to sign a transaction using their non-custodial wallet for each listing they create, requiring BNB to pay for network fees. It could also cause issues with property management system (PMS) integrations if certain aspects of the smart contract are set in a way that is incompatible with a PMS.
Ultimately, our current approach is one of progressive decentralization in these early stages of the project. Dtravel doesn’t exist without hosts, and by creating a complex user experience from the start, the number of hosts able to successfully list a property is significantly compromised.
Therefore, we decided to adopt a two-phase approach:
Phase 1 (Now): Dtravel deploys and signs the smart contract for each listing (Option 1 above). Hosts can create listings and modify listing parameters (i.e. price, cancellation policy, etc.) directly within their Dtravel account. All booking payments are automated via the smart contract.
Phase 2 (Future): Hosts can choose to deploy and sign the smart contract themselves for each listing using MetaMask (Option 2 above). The first option will remain available to hosts, which is useful for those new to web3 or those who simply prefer an easier user experience.
Initially focusing on an accessible user experience ensures that Dtravel has the greatest chance of onboarding more hosts, regardless of their web3 proficiency.
On-chain payments facilitated via smart contracts offer both hosts and guests a range of benefits over traditional, centralized payments. These include:
The result is a payment system that values truth, fairness and efficiency above all else. With all data recorded on a blockchain and publicly verifiable, ambiguity is eliminated and transparency is achieved.
Our progressively decentralized approach aims to cater to the widest demographic of hosts. By adopting a user experience that is largely familiar rather than mostly alien, we believe this will incentivize hosts to naturally seek progressive decentralization for their businesses as they learn more about the rationale and benefits throughout the course of their Dtravel journey.
We’re extremely passionate about powering the world of travel with smart contracts, and we can’t wait to see these contracts in action once we launch Dtravel v2 next month. If you’re interested in joining the waitlist as a host and being part of a new web3 vacation rental experience, please complete the survey here.