Docs
How Fruge works
Everything you need to run a job through escrow, as a client or a freelancer. About five minutes to read.
Overview
Fruge is an escrow for freelance work. A client locks a job's payment in a small Solana program before the work starts. From then on only two things can happen to that money:
- Release. The client pays the freelancer. This works at any time.
- Reclaim. The client takes the money back. This only works after the deadline has passed.
No company holds the funds and nobody arbitrates. The program enforces the rules, and both sides can see the escrow on-chain.
Before you start
- A Solana wallet such as Phantom, Solflare, or Backpack, on Solana mainnet.
- SOL. The client needs the job amount (at least 0.001 SOL) plus a little for network fees and about 0.002 SOL of escrow rent, which is returned when the escrow settles.
- Two different wallets.The client and the freelancer can't be the same address.
Signing in asks your wallet to approve a message, not a transaction. It moves no funds.
For clients
- Connect your wallet and choose New job.
- Write the terms: a title, the deliverables, the acceptance criteria, how completion will be shown, the amount in SOL, and a work window of 1 to 60 days.
- Share the invite link with your freelancer. It stays valid for 7 days.
- Fund the escrow once they have signed. One wallet prompt locks the SOL and starts the deadline.
- Releasewhen you're happy with the work. If the deadline passes with nothing delivered, reclaim instead.
You can cancel a job any time before funding it. After funding, the only ways out are release and reclaim.
For freelancers
- Open the invite link and connect your wallet.
- Read the terms.They can't change after you sign, so check the deliverables, amount, and window.
- Accept and sign, or decline. Signing is free and moves no money.
- Wait for funding before you start. The job shows Funded · in progress once the SOL is locked.
- Deliver however you normally do, then ask the client to release.
Running late? Propose an extension before the deadline. Once it passes, the client can reclaim without asking.
Terms
The terms are the deal: title, deliverables, acceptance criteria, how completion will be shown, amount, and work window.
- They're fixed once created. To change anything, the client cancels the job and creates a new one.
- They're fingerprinted. Fruge hashes the exact terms with SHA-256. Changing a single character produces a different fingerprint.
- The freelancer signs that fingerprint with their wallet, together with both wallet addresses. The signature request expires after 10 minutes; if it does, ask for a fresh one from the invite page.
- It's stored on-chain with the escrow, so either side can later prove what was agreed.
The deadline
The deadline is set when the client funds the escrow: funding time plus the work window. A slow start never shortens the freelancer's time.
- Release works any time, before or after the deadline.
- Reclaim only works once the on-chain clock reaches the deadline. The program decides, not your browser.
- Settling closes the escrow in the same transaction, so nothing can be paid twice.
Extensions
Either side can propose a later deadline. It only takes effect when the other side accepts.
- The new deadline must be later than the current one.
- It can be at most 60 days from the moment it's proposed.
- It must be proposed and accepted before the current deadline passes.
- Only one proposal can be open at a time. Whoever proposed it can cancel it.
Job statuses
| Status | What it means |
|---|---|
| Invited | The invite is out. Waiting for the freelancer to sign. |
| Awaiting funding | Terms are signed. Waiting for the client to fund. |
| Funded · in progress | The SOL is locked and the deadline is running. |
| Extension proposed | One side asked for more time. The other can accept until the deadline. |
| Closed · Paid | The client released. The freelancer has the SOL. |
| Closed · Refunded | The client reclaimed after the deadline. |
| Invite expired | Nobody signed within 7 days. Create a new job. |
| Declined | The freelancer turned the terms down. |
| Cancelled | The client cancelled before funding. |
Who can do what
Every action needs a signature from one of the two wallets on the job. Nobody else, including Fruge, can move the money.
| Action | Client | Freelancer | Anyone else |
|---|---|---|---|
| Sign the terms | No | Yes | No |
| Fund the escrow | Yes | No | No |
| Propose an extension | Yes | Yes | No |
| Accept the other side's extension | Yes | Yes | No |
| Release the payment | Yes | No | No |
| Reclaim after the deadline | Yes | No | No |
On-chain vs off-platform
| On-chain · enforced | Off-platform · yours |
|---|---|
| The locked SOL | Files and source |
| The deadline | Previews and drafts |
| The fingerprint of the terms | Final delivery |
| Release, reclaim, extensions | Communication |
Limits to know
- There is no dispute process. Fruge never judges the work. If the deadline passes without a release, the client can reclaim, even if work was delivered. Freelancers should agree on a release or an extension before then.
- Upgradeable, unaudited program.The Fruge operator holds the program's upgrade key, and the program has not had an external security audit.
- SOL only, one payment per job, with a work window of 1 to 60 days.
Questions
Does Fruge charge a fee?
No. The program takes no cut. You pay Solana's network fees, and the small deposit that keeps the escrow account open returns to the client at settlement.
My wallet rejected the prompt. Did anything happen?
No. Nothing changes until a transaction confirms. Try the action again from the job page.
The job page looks out of date.
Fruge reads the escrow account directly from Solana, so the page catches up on its own even if your browser closed mid-transaction.
Why can't I reclaim yet?
The program compares the deadline to Solana's clock, which can sit a few seconds behind yours. Wait a moment and try again.