What if either side (buyer or seller)  fails to fulfill the contract?

If any of the sides fail to follow the agreed terms, for example, a seller misses the due date, they can dispute and re-negotiate time, necessary edits, product replacement, or other conditions in the Contract Chat. A buyer will see the “Dispute” button available only after the due date passes. 

If not agreed on new terms and how and when the payment is released from the contract, either buyer or seller may escalate a dispute to the Agent, a neutral third party, to resolve their case. 

All in all, disputes can be unassisted (when the buyer disputes and both buyer and seller close the deal on mutually agreed terms) and assisted (when a dispute escalates to the Agent).

How and when the escrow payment is made?

Once a draft contract has been created and approved by both parties (buyer and seller), it is deployed (published) to the selected blockchain network. The next step is to transfer (pay) the escrow payment (“Agreed amount” as in the contract) into the deployed contract to activate it. 

This is done by the buyer and both a buyer and seller will see the transaction hash, its timestamp, and change in the contract status inside the escrow app. If necessary, you can check via the relevant blockchain explorer website by the contract address.

The seller sees the payment time-locked in the contract and starts working on the order. If fulfilled and approved by the buyer, the escrow payment will be released to the seller’s Metamask address by the buyer. But it can also be released by the seller if:

  1. Buyer protection time has passed.
  2. The buyer neither released nor disputed the contract.

This function is added to the contract code to protect not only a buyer from scams but the seller as well. Hypothetically, it is also useful if serious health or other issues prevent a buyer from releasing the payment to the seller. When payment is released to the seller, the contract moves to execute.

Have more questions on escrow disputes? Read here.

Is there a walkthrough of your escrow app?

Want us to give you a quick tour of the Zenland application? This way you will know its major components and what those are for. To illustrate, we’ve added screenshots to give you a sneak peek of what these components look like. 

Login page

You may have already seen it, and the Zenland login page is no different from the login pages of other decentralized applications. No email, password, or other confidential information is needed. At this point, only Metamask accounts can be connected.

Navigation panel 

You may call it differently, but its function is to let Zenland users quickly access the main pages of the escrow app. The first one – the “Create Contract” page is open by default once the user has logged in. You will see the navigation panel is on your left. During the beta, there are also 3 report forms for applicant testers. 

Main pages

Create contact page

It is the first page on the navigation panel that is open by default. It contains the “New Contract” form that is filled by either side (a buyer or a seller). Once filled out, the contract is in the “Draft” state and can be seen on the “Contracts” page. The form has tooltips (info dialog boxes) to guide you through the contract terms. Read how to fill it out correctly here

Contracts page

All your contracts created, approved, deployed, fulfilled, disputed, and executed will show up here. Contracts can be filtered by contract state, or sorted from top to bottom or bottom to top by dates, the agreed amount, contract ID, name, or network/token. 

Documentation

A click on Documentation leads to https://docs.zen.land where everything about the escrow process and its participants is explained in detail. This is not developer documentation and is intended for users with little knowledge of blockchain escrow. There you’ll learn more about smart contracts, blockchain networks and tokens, and blockchain explorers to give you a solid foundation for why Zenland escrow app was built. The major difference between this knowledge base and documentation is in its purpose. The knowledge base has less detailed and more practical answers to common questions and issues users encounter. Documentation, on the other hand, expands on them teaching you why the escrow app is built the way it is.

Top panel 

Top panel is where you switch your network, see in-app balance, do a quick check on notifications, and access the Menu tab for more pages.

Network dropdown

Let’s say you have logged in with Ethereum, but want to create and deploy (publish) an escrow contract to Binance. You have two options to switch a network:

  1. Change it in Metamask first, and then, log in again.
  2. From the Top panel, click on Ethereum, and select Binance from the dropdown.
Important!The selected network and token cannot be changed after you click the "Create" button. Make sure you and another person you are dealing with (a buyer/seller) both agree on which network and token to use. Also, transaction gas fees vary depending on a network with Ethereum being the most expensive. For other questions about token/network refer to its category.

Balance display

The top panel also displays your running balance in the internal (in-app) wallet. The Zenland fee (for service) is deducted from this balance. If the buyer and seller decide to split the fee (50/50), they both must have enough balance to pay. Otherwise, the contract may not be deployed. For more read how funds can be added to an internal wallet.

Notifications

The bell icon on the Top panel opens up the Notifications dialogue with your most recent notifications. Clicking “All Notifications” will take you to the Notifications page to see all you have received since your first login with a particular Metamask address.

Menu tab

In the top right corner of the Top panel is a profile icon. Clicking on it opens up a Menu tab, from where you choose other pages You may go to your profile, wallet, notifications, or settings pages.

Other pages

Profile page

A user profile page displays his/her rating based on the reviews received from other users who had contracts with that user. Profile pages are public and can be seen by anyone knowing your Metamask address without the need to log in. More questions and answers are in the “Zenland profile & wallet” category.

Wallet page

This is your internal (in-app) wallet from where you pay a service fee for creating an escrow contract. It consists of two parts: the input fields and the transaction history. The records show “Deposit” when the funds were added to a wallet, and “Spent” when the Zenland fee was deducted for every new contract. The running balance is also shown here along with the filters for all amounts deposited and spent.

Notifications page

The page displays a list of different notifications associated with your account.

In general, there are 4 types of notifications:

  1. Contract notifications (changes to terms, contract state, and all contract operations).
  2. Chat notifications (new messages in specific contract chat).
  3. Wallet (when funds are deposited and deducted to pay a Zenland fee for the contract(s)).
  4. Transaction (with the address of every blockchain transaction associated with a specific contract ID).

Clicking on a particular one should take you to the relevant contract or chat depending on the displayed contract or chat ID. Wallet notifications will redirect to the “My Wallet” page.

Settings page

The settings page is an additional page where users can add or delete the information displayed on the profile page. Changes may include adding a nickname instead of the default “Anonymous” assigned on your first login, entering an email address, or bio, and uploading a profile and/or background images.

You’ve seen it all! You can try an escrow now, or see how Zenland works to learn more about the process.

Contract Control page

It is the next page that opens up once you click the “Create” button. The top of it contains the contract terms that both parties should approve before proceeding with the contract.

The page outlines the process with 4 simple steps:

  1. Contract Approval (the equivalent of signing a contract),
  2. Deployment (a.i. publication to blockchain network),
  3. Transfer (the agreed payment is transferred into the contract on the blockchain),
  4. Fulfillment (seller delivers the product/service and buyer releases the payment from contract to seller’s address).

The contract is controlled through a series of commands known as contract actions which update the contract state at every stage.

Contract Chat

Every action and state is timestamped in the Chat message logs, automatic system messages on changes made to a contract by both parties. When a new action is taken, the Chat tab (next to the Contract tab) will display a red indicator.

What problem(s) do you solve?

Escrow centralization and lack of user privacy are the 2 major escrow issues that Zenland solves. Our idea is simple – instead of a human escrow service that is: 

  • a) overpriced, 
  • b) influenced by the human factor,
  • c) geographically limited,
  • d) centralized,

we use smart contract technology. Smart contracts are simple blockchain programs that can receive and release escrow payments following the contract terms written in code. Anonymous and transparent, a smart contract offers a guarantee of a formal agreement without any third party involved.

Unlike traditional escrow services that require your personal information like email and/or billing details to sign up and use the escrow, Zenland users stay fully anonymous. A Metamask address is the only input required to log in and use an escrow contract.
All contract transactions get recorded in the blockchain along with the timestamp and can be easily verified via a blockchain explorer like Etherscan, or others.

What is Zenland escrow contract?

Zenland escrow contract is a simple one-page programmable contract that is deployed (published) and stored on the blockchain. Its main function is to safeguard the buyer and seller agreement terms and escrow payment until both fulfill the terms.

Upon completion, the contract executes, and the payment is released from the contract to the seller’s wallet address. Similar to traditional contracts, escrow contracts are approved (signed) by both sides before publishing. Yet unlike them, they are stored not elsewhere on private servers (centralized), but in the blockchain network (decentralized). 

Zenland escrow contract has 2 wallet addresses (buyer’s and seller’s), a contract name and its details (optional), the date/time when the order is due buyer protection time, and the escrow amount agreed upon. The contract has a Zenland (service) fee that can be paid by the buyer, by the seller, or split 50/50. 

Below are the four screenshots of what it is made up of along with a brief description of how to fill each part.

Parties:

Click “It is me” to automatically add the Metamask address that you are logged in with, and copy-paste the second. Or, just copy and paste both addresses manually.

Contract terms:

Name the contract (like Web design services), and add a brief description of what you expect the design to have, or not have.

Timing & deadline:

First, click on the calendar icon to choose the date/time when the order is due (can be the same day).

Second, enter the number of hours/days a buyer will need to check the order/product (including delivery time).

Escrow amount & fee:

Choose the token you want to pay with from the drop-down and enter the amount. Make sure the network is correct now because you will not be able to change it after creating a contract. If you want to switch a network refer to this article.

Next, choose how the service fee is paid: split 50/50, or paid in full by either side. 

Double check on the terms and click “Create”.

My internet connection has been restored but I cannot message in chat. Why?

This happens only occasionally, and there are a few things to get the chat back to normal.

Try refreshing the page by holding both Ctrl + Shift + R on Windows (Option, Command, P, and R on Mac).

Re-login and open the contract again.

This should work and you will be able to type messages again.

I don’t know if the transaction went through because the button is blue again. What can I do?

This is a bug that has already been fixed. If the issue repeats, please report it to our Telegram or Discord.

To know whether or not the transaction has been successful head over to the applicable blockchain explorer like Etherscan, Polygonscan, or BSCscan. Paste the contract address in the search bar to see all transactions recorded in the network associated with the address.

Why does the error “Authentication credentials were not provided” appear?

The “Authentification credentials were not provided” error will appear if the user has tried to connect via the Metamask account, but did not sign the login message.

Instead, “Cancel” was clicked and the account address was not connected to the Zenland website. 

To fix this, close the message and click Metamask to connect. Once the login message appears in your Metamask window, click “Sign”.

We have agreed on terms with the seller. Can I cancel the Agent?

If the dispute has escalated and the Agent has been invited, neither a seller nor a buyer can cancel it. 

This is done for 2 reasons:

a) to protect the Agent from false calls and
b) to make a fair decision on the buyer/seller’s case by a neutral third party.

Even if agreed, both a buyer and seller may still have disagreements over their case and decide to dispute again or escalate it. This back-and-forth process would take time and nerves on both sides.

It is also possible that a buyer accepts the seller’s replacement/edits just because he/she has little time to dispute and wait for new edits/products. Just like the seller may need a payment or maintain his/her reputation, and so decides to comply with the buyer’s new terms. In both cases, the two may still agree on new terms but at the expense of one of the parties. 

This does not mean, that all disputed cases always result in Agent’s resolution. 

Initially, disputes are decided by the two parties with no third party involved. More about the two separate options (simple dispute and Agent-assisted dispute) is here.   

How do I submit proof to support my claims?

At this time, direct file submissions (attachments) are not supported. 

To support your claims when disputing the case you can: 

  1. Upload a screenshot/video to imgur.com
  2. Send the URL to the contract chat. 

This maintains anonymity without adding complexity to the system. Though there are other ways like Google Drive, Dropbox, etc. to share the evidence with the Agent or with the buyer/seller to support your claims.

Note that the URLs are not clickable and are copy-pasted manually into the search bar to see the content.