Devnet

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

  1. Connect your wallet and choose New job.
  2. 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.
  3. Share the invite link with your freelancer. It stays valid for 7 days.
  4. Fund the escrow once they have signed. One wallet prompt locks the SOL and starts the deadline.
  5. 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

  1. Open the invite link and connect your wallet.
  2. Read the terms.They can't change after you sign, so check the deliverables, amount, and window.
  3. Accept and sign, or decline. Signing is free and moves no money.
  4. Wait for funding before you start. The job shows Funded · in progress once the SOL is locked.
  5. 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

StatusWhat it means
InvitedThe invite is out. Waiting for the freelancer to sign.
Awaiting fundingTerms are signed. Waiting for the client to fund.
Funded · in progressThe SOL is locked and the deadline is running.
Extension proposedOne side asked for more time. The other can accept until the deadline.
Closed · PaidThe client released. The freelancer has the SOL.
Closed · RefundedThe client reclaimed after the deadline.
Invite expiredNobody signed within 7 days. Create a new job.
DeclinedThe freelancer turned the terms down.
CancelledThe 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.

ActionClientFreelancerAnyone else
Sign the termsNoYesNo
Fund the escrowYesNoNo
Propose an extensionYesYesNo
Accept the other side's extensionYesYesNo
Release the paymentYesNoNo
Reclaim after the deadlineYesNoNo

On-chain vs off-platform

On-chain · enforcedOff-platform · yours
The locked SOLFiles and source
The deadlinePreviews and drafts
The fingerprint of the termsFinal delivery
Release, reclaim, extensionsCommunication

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.

Open the app