GrumBuild
Welcome to Grumbuild 👋 - a freelance marketplace where payments are protected by on-chain milestone escrow on BNB Smart Chain.
Grumbuild is a decentralized freelance marketplace built on BNB Smart Chain (BSC), designed to bring trust and transparency to professional collaboration. It connects clients and freelancers through a structured workflow backed by on-chain escrow — meaning payments are governed by smart contracts, not held by a third party.
On Grumbuild, you can:
Every payment on Grumbuild is protected by a dedicated smart contract. Funds are only released when both parties fulfill their obligations, making the process fair, verifiable, and fully transparent on-chain.
Instead of holding money in a company bank account, Grumbuild uses smart contracts. That means:
In simple terms: the backend helps prepare transactions, but your wallet always stays in control.
Open Profile / Account Settings and update things like display name, bio and skills, location, and profile photo. Your updated profile will show everywhere - job posts, gig listings, chat messages, and proposals.
Because Grumbuild uses blockchain escrow, your wallet becomes your identity for payments. Your wallet address is used as your client wallet (to fund escrow milestones) or freelancer wallet (to receive payouts).
When you do important actions like funding escrow or withdrawing money:
Your job is saved, you receive a JOB_POSTED notification, and your job appears publicly so freelancers can apply.
Once posted, clients can discover you in gig search, message you, and propose work. A gig can turn into a job + milestones + escrow anytime.
After you apply, you get a BID_SENT notification, the client gets BID_RECEIVED, and you can chat and finalize agreement details.
Think of these as your project agreement - but structured and easy to reference. They typically include what you're building/delivering, what is not included, timeline and key milestones, budget expectations, and acceptance criteria (how the client approves work). This helps prevent misunderstandings and protects both sides.
Either side can propose a document, edit it, and request changes. Once it's ready, both sides confirm the final version.
Each milestone gets its own dedicated escrow contract - the "vault" for that milestone's payment. When a milestone is ready to be funded:
Fees are enforced by smart contracts and stored in basis points (bps). For example, 100 bps = 1% total fee, often split like 0.5% buyer fee and 0.5% freelancer fee.
On payout, the freelancer receives the project amount minus vendor fee, and the platform receives buyer fee + vendor fee.
"Grumbuild charges about 1% total, split between client and freelancer, and the escrow contract automatically routes it during payout."
When the freelancer clicks Deliver Work, they can either upload a file (up to 100MB) or paste an existing IPFS CID. If they upload:
The escrow contract stores the CID and marks the milestone as Delivered.
Every escrow contract on Grumbuild is tied to specific wallet addresses - one for the client and one for the freelancer. These addresses are permanently written into the contract at the time of creation and cannot be changed afterwards. This means:
In short: always connect the same wallet you used when you signed up or when the milestone was created. Switching wallets mid-project can lock you out of your own escrow, and there is no way to reassign wallet addresses on an existing contract. If you need to change your wallet, make sure to do it before any new milestones are created - and keep in mind that existing milestones will still be bound to the original address.
Disputes can arise at different stages of the delivery process, and understanding how they interact with the escrow lifecycle is important for protecting yourself:
The dispute system is designed to be fair but also to discourage frivolous claims - the fee structure ensures that both parties have skin in the game, and the deadline mechanism prevents anyone from stalling indefinitely.
A dispute is a protected way to resolve disagreements - like when a client feels work is incomplete, a freelancer feels the client is delaying unfairly, or either side wants a neutral resolution. Disputes are handled on-chain using an arbiter address, a dispute fee, and deadlines (so nobody can stall forever).
Step 1: Start dispute
Client can start while Funded or Delivered. Freelancer can start while Delivered. The initiator pays a dispute fee. Deadlines apply: if freelancer starts → client has 72 hours to respond; if client starts → freelancer has 48 hours to pay fee and respond.
Step 2: If the other side doesn't pay in time
Initiator can call resolveDisputeByDefault() and wins by default.
Step 3: If both pay
Arbiter decides: resolveToVendor() (freelancer wins) or resolveToBuyer() (client wins). The losing dispute fee gets split between the arbiter + platform fee recipient.
This structure discourages fake disputes and encourages fast resolution.
Grumbuild keeps you updated in real time with a notification center. You'll see alerts for job and gig activity, bids sent/received, requirement docs created/confirmed, milestone funded/delivered/approved/withdrawn, dispute started/resolved, and chat messages and conversation updates. Real-time delivery uses WebSockets and private user channels.
If email is configured, important actions can also trigger emails (welcome, milestone updates, bid updates, etc.). Email failures won't break anything - you'll still get in-app notifications.
Chat is built to keep everything connected to the actual work. Conversations can exist for jobs, gigs, and applications. Messages are saved and tied to context. Attachments can be uploaded via the platform upload API. Notifications fire on message receipt and conversation updates. Your chats aren't floating randomly - they always relate to a job, bid, or milestone.
General uploads (avatars, gig images, job cover images):
Image-only MIME types, limited by platform constants.
Work delivery uploads (milestone delivery):
Up to 100MB per file. Supports common formats (PDF, docs, images, video, audio, etc.).
Grumbuild is built for BNB Smart Chain (BSC). The default dev config uses BSC Testnet (CHAIN_ID = 97). It's designed to move to mainnet by switching RPC + chainId configs.
Right now, Grumbuild uses BNB only - budgets, milestones, fees, and payouts are all in BNB. The system is designed so tokens like USDT/USDC (BEP-20) can be added later.
Fees are controlled in two places: smart contract parameters (buyerFeeBps, vendorFeeBps) and backend system settings (mirrors these configs). They are enforced automatically at payout.
Projects that do not have disputes are entitled to the rewards under the following considerations:
Use the Support / Contact page inside the app to send a message to the team. Your request is stored and forwarded to the configured support inbox, and we'll reply with next steps. Typical reasons include login or account issues, job/gig/milestone questions, escrow or dispute questions, and upload problems.
Can't find what you're looking for?
Our support team is here to help. Whether you have a question about escrow, milestones, disputes, or anything else - send us a message and we'll get back to you promptly.