When working remotely on a contract, freelancers often do not get paid after finishing the workload. This project aims to solve this issue by ensuring that money for the freelancers is stored safely in the blockchain while they are working on the deal.
Payment for the deal can be split into upfront payments and multiple milestones. After the freelancer finishes a milestone, company confirms that it is indeed done and the relevant part of the payment is automatically sent to the freelancer.
Currently, job offerors can create tasks that they want fulfilled (design logo, develop application) and freelancers can post their skills on the marketplace as well.
This dApp is running on the Nebulas blockchain to store data and handle all transactions (Nebulas can handle over 2000 transactions per second, as compared to Ethereum's 15). If you do not own any Nebulas coins (NAS), you will receive some NAS automatically when you visit the application - you just need to have a NAS wallet!
Click here to learn more!
Do you have a cool skill that you can offer for sale? Create a job posting, so companies can find and hire you!
Apply for open Jobs
Scroll through open jobs listing and find one according to your taste. Get in touch with the job offeror, send them your relevant experience and let them assign the job to you!
Be in Control of the Contract Money
You can always make sure if the company which hired you already deposited enough money for your next payment into the smart contract.
On top of that, company can receive their deposit back only if you confirm their dispute!
Job Poster's Features
Create a Job Offer
You can create Job Offer by entering the basic information about it, but mainly your e-mail, so you can provide more informations via e-mail and so freelancers can contact you there. You will also specify payment schedule, with upfront payment and different milestones. After creating the offer, it will be bound to your wallet address.
Assign Freelance into the Offer
After you choose freelancer that will perform the Job, you will assign him/her to this contract. After you do this, you will also automatically pay upfront payment (if there is any) and you also cannot change assignee of the contract anymore.
Deposit into the Contract
After creating & assigning freelancer to the smart contract, you will have to deposit NAS into it. It does not have to be the total value of the contract - it can be just enough to pay the freelancer for the next milestone.
Confirm the Contract Work
After the freelancer finishes a milestone, the company (creator of the offer) confirms that the milestone is indeed finished. This will trigger the smart contract to send the amount of NAS associated with the milestone to the freelancer automatically.
Delete the Contract
A company that assigned & deposited NAS into a contract can ask the contractor to confirm a dispute, in order to get their deposit back. After the contractor confirms the dispute, company can delete the contract and its balance will be returned back to the company.
100% Decentralized & Private
Our application does not store any data anywhere besides the Nebulas blockchain, and does not save any extra data about its users.
How does it work?
John Doe is a freelancer that makes beautiful websites for a living. He loves what he does, however sometimes companies pay him late, or not at all.
In the past, he had a bad experience with freelancing platforms, mainly due to big fees and low wages.
When he researched the possible solutions to his problem, he found out about Fair Contracts. He liked the idea of eliminating the middle man while dealing with the company, as well as the certainty that he will receive his well-earned money.
First, he created a freelance offering, so companies can contact him if they are interested in hiring a web developer.
Then, John went to look through the open jobs listing, where he found an interesting offer from Example ltd. - 1000NAS to develop their website.
John contacted Example ltd. via the e-mail they've provided, with relevant experience and a little bit about himself.
Example ltd. received other applications, but the management decides to give the job to John, since he was the best.
After a lengthy discussion, they agree to split the payment for the contract (1000NAS) into upfront payment and two other milestones.
Example ltd. will pay 100NAS upfront, 400NAS after John finishes the basic website functionality (Milestone I) and finally 500NAS after he sends them the final version of the website (Milestone II).
Example ltd. then proceeds to assign John into the smart contract (John sent them his wallet address via e-mail), which will also automatically send the upfront payment of 100NAS that they agreed on. After that, the company can deposit money into the contract, for next milestones - either the entire sum, or just part of it (usually enough for payment of next milestone).
John is satisfied with this, because he knows that the company will send the money for the next Milestone to the smart contract before he starts working on it. He can always check the contracts assigned to him, and whether they contain enough NAS for the next payment.
After John delivers his work for Milestone I, Example ltd. will check whether it is everything they asked for. After that, they will confirm that the milestone was indeed delivered in the application and the smart contract will automatically send 400 NAS to John.
When he delivers the entire application, the process repeats itself - company is happy with John's work, so they confirm the contract and John receives his hard earned 500 NAS.
Contract successfully closed
Whole process is fully automated and if anything goes wrong, company can delete the contract to receive back their deposit (after John confirms the company's dispute of contract).
Meet The Team
Oliver originally started this initiative in his spare time as a side project, but it quickly peaked interest of his colleagues and friends, who now contribute to the mission to help freelancers around the world as well.
Currently, there are limitations mainly in two areas.
First one is contract disputing - this is really something that needs to be handled correctly, so everyone involved in the deal is satisfied. We are currently exploring options to solve disputed contracts through community voting, whether contract should be paid out. There would also be reward for the voters and voters would have different ranking so noone is trying to cheat the system.
Second one is some kind of user ranking system, to know which freelancers (addresses) are reliable and deliver high quality work. Similar ranking would be applied for the companies posting jobs - if someone is unsuccessfully disputing contracts often, something fishy might be going on.
Well, I am Oliver. But I got some friends working on this amazing project as well, so now we are team of four guys from Slovakia that someone ended up working in Brno, Czech Republic. We like beer, crypto and programming - and this mix is really good for crypto-hackathons!
Apparently, this solves a real problem occurring all over the world.
Furthermore, I believe Nebulas is the next big thing, maybe something to break out to mainstream even. And I also think that to incentivise casual people to start using Nebulas tokens, there have to be more use cases for them.
And of course, Nebulas can handle more than 2000 transactions per seconds with working mainnet, so the choice was no brainer.
If you deposit money into smart contract, the only one that can send them away (by confirming work or deleting contract) is you alone. This is done by multiple security checks - each contract is bound to the creator's wallet.
Unfortunately, as a security precaution it is not possible for any other wallet to manage (assign / deposit / delete / confirm) the contract other than wallet that created the smart contract. In future, cases like this will be resolved through community voting (see "What are the future plans for this project?" FAQ question)
There are 2 possible scenarios for deleting contracts:
1) You can normally delete freelance offer or unassigned job offer by clicking "Delete Contract" button in the left sidebar of the application.
2) If you wish to delete already assigned job offer, freelancer must first "Confirm Contract Dispute" first. After he/she does this, you can safely delete the contract and any leftover balance will be returned back to your wallet.