Welcome to DealVault
DealVault is a trustless escrow platform built on Stellar and Soroban. It eliminates payment uncertainty in open source bounties, freelance contracts, and digital service agreements — globally.
Every deal on DealVault follows one simple rule: funds are locked before work begins, and released only when conditions are met. No trust required. No intermediary. Just code.
This documentation covers everything — from how the escrow system works, to how contributors earn USDC, to how the Soroban smart contracts are deployed and function.
Platform Overview
DealVault connects three types of participants around a single trustless escrow contract.
The Core Problem
Online work has always had a trust problem. Contributors fear they won't get paid. Maintainers fear they won't get the work. DealVault removes both fears by making payment guaranteed before work starts.
How It Solves It
Quick Start
Get up and running on DealVault in under 5 minutes.
Step 1 — Sign in with GitHub
Visit DealVault and click Get Started. Authenticate with your GitHub account. Your profile, repositories, and avatar are pulled automatically.
Step 2 — Choose your role
Select Contributor if you want to earn USDC by completing issues. Select Maintainer if you want to fund issues and attract contributors to your project. You can switch roles at any time from your profile.
Step 3 — Complete KYC & connect wallet
Before applying or creating issues, you must verify your identity (KYC) and connect a Stellar wallet — Freighter, Lobstr, or xBull. This takes about 2 minutes.
Step 4 — Start earning or funding
Contributors browse Explore Issues to find funded bounties. Maintainers submit their repo for review, then create funded issues once approved.
Escrow System
DealVault's escrow is powered entirely by Soroban smart contracts. No bank. No payment gateway. No intermediary.
What is escrow?
Escrow is a financial arrangement where a third party holds funds until a transaction is complete. In DealVault, the "third party" is a Soroban smart contract — code running on the Stellar blockchain that no one controls except the rules written into it.
How funds are held
When a maintainer funds an issue, USDC is transferred from their Stellar wallet into the escrow contract address. The contract holds the funds trustlessly. Neither the maintainer, contributor, nor DealVault can access the funds unilaterally.
// Maintainer calls this to lock funds pub fn fund_escrow( env: Env, deal_id: Symbol, maintainer: Address, contributor: Address, usdc_token: Address, amount: i128, ) { maintainer.require_auth(); token::Client::new(&env, &usdc_token) .transfer(&maintainer, &env.current_contract_address(), &amount); // Store deal on-chain env.storage().instance().set(&deal_id, &(contributor, amount, usdc_token)); }
When funds are released
Funds are released in exactly three scenarios:
- Maintainer approves submitted work → funds go to contributor (minus 2% fee)
- Admin rules in favour of contributor during a dispute → same outcome
- Admin rules in favour of maintainer during a dispute → full refund to maintainer
Stellar & Soroban
DealVault is built on Stellar because it provides fast, cheap, and globally accessible payments — and Soroban brings programmable smart contracts to the network.
What is Stellar?
Stellar is an open-source, decentralized blockchain network designed for fast and cheap cross-border payments. Transactions settle in 3–5 seconds and cost less than $0.000003.
What is Soroban?
Soroban is Stellar's smart contract platform. It uses Rust-based WebAssembly contracts that are deployed on-chain and execute deterministically. DealVault's escrow logic lives entirely in a Soroban contract.
| Property | Value |
|---|---|
| Transaction speed | 3–5 seconds |
| Transaction fee | ~0.00001 XLM (fractions of a cent) |
| Smart contract language | Rust → WebAssembly |
| Asset support | XLM, USDC, any Stellar asset |
| Global accessibility | 180+ countries |
| Custodial? | No — non-custodial |
USDC Payments
DealVault uses USDC — not XLM — as the primary escrow currency. Here's why.
Why USDC and not XLM?
XLM is Stellar's native token, but its value fluctuates with the market. A bounty worth 100 XLM today might be worth $30 tomorrow. Contributors can't plan their income around volatile rewards.
USDC is a stablecoin pegged 1:1 to the US Dollar. 100 USDC is always approximately $100 — regardless of crypto market conditions. This makes DealVault rewards predictable and professional.
| XLM | USDC | |
|---|---|---|
| Value stability | Volatile | Stable (~$1) |
| Predictable rewards | No | Yes |
| Professional use | Limited | Yes |
| Supported on Stellar | Yes | Yes |
Deal Lifecycle
Every deal on DealVault moves through a defined set of states. Understanding these states is essential to both contributors and maintainers.
| State | Description | Who triggers it |
|---|---|---|
| CREATED | Issue created, not yet funded | Maintainer |
| FUNDED | USDC locked in Soroban escrow. Issue is live and visible to contributors. | Maintainer (wallet tx) |
| IN_PROGRESS | Contributor assigned and working | Maintainer selects applicant |
| SUBMITTED | Contributor has delivered work, awaiting maintainer review | Contributor |
| RELEASED | Maintainer approved. USDC auto-released by contract. Deal complete. | Contract (on approval) |
| DISPUTED | Either party raised a dispute. Admin mediates. Funds still locked. | Either party |
Contributor Guide
Contributors discover funded issues, complete work, and earn USDC — with payment guaranteed on-chain before they start.
Getting started as a Contributor
- Sign in with GitHub
- Select Contributor role
- Complete KYC verification
- Connect your Stellar wallet (Freighter / Lobstr / xBull)
- Browse funded issues on Explore Issues
- Apply to issues that match your skills
Applying to an issue
Every issue on DealVault shows a ✓ FUNDED badge — meaning the reward is already locked in escrow. Click Apply, and your application is sent to the maintainer.
Submitting work
Once assigned, complete the work and submit via the DealVault platform. Include a link to your pull request, repository, or deliverable. The maintainer will review and approve or request revisions.
Getting paid
When the maintainer approves, the Soroban contract automatically releases 98% of the escrow amount to your connected Stellar wallet. The remaining 2% is the DealVault platform fee. Settlement takes 3–5 seconds.
Maintainer Guide
Maintainers submit their repositories for review, create funded issues, and attract verified contributors to their open source projects.
Getting started as a Maintainer
- Sign in with GitHub
- Select Maintainer role
- Submit your repository for review
- Wait for DealVault team approval (24–48 hours)
- Create funded issues once approved
Submitting your repository
Every maintainer must submit their GitHub repo for review before creating issues. The DealVault team evaluates whether the project is active, has suitable open issues, and benefits the broader ecosystem.
Funding types
| Type | Description | USDC Required? |
|---|---|---|
| Self-Funded | You deposit USDC into escrow. Contributors earn real rewards. | Yes |
| Free / Network | No money required. Build visibility and attract contributors to your project. No escrow involved. | No |
Reviewing applicants
Once an issue is live, contributors can apply. You can view each applicant's profile, reputation score, completed bounties, and skills. Select the best fit and they'll be notified immediately.
Approving work
When a contributor submits work, review it carefully. If satisfied, click Approve & Release. The smart contract automatically releases funds to the contributor's Stellar wallet. If you need revisions, request them through the platform. If there's a serious disagreement, raise a dispute.
Admin Role
Admins maintain platform integrity through repo approvals, dispute resolution, and user oversight.
Admin responsibilities
- Review and approve or reject maintainer repo submissions
- Mediate disputes between contributors and maintainers
- Monitor all on-chain transactions via audit logs
- Manage KYC verification edge cases
- Enforce platform terms and community standards
Dispute resolution
When a dispute is raised, the admin reviews evidence submitted by both parties. Based on the review, the admin can either release funds to the contributor or refund to the maintainer. All dispute actions are recorded on-chain for full transparency.
KYC Verification
All users must complete KYC before participating in funded deals. This protects the platform from fraud and builds a trusted community.
What KYC involves
- Personal information — name, email, date of birth, country (pre-filled from GitHub)
- Government ID — passport, driver's licence, or national ID upload
- Stellar wallet connection — connect Freighter, Lobstr, or xBull
Why we require KYC
- Prevents fake accounts and Sybil attacks
- Ensures contributors and maintainers are real, accountable people
- Builds trust for higher-value bounties
- Required for regulatory compliance with cross-border payments
Campaigns
Campaigns allow DealVault to pool funding — from grants or sponsors — and distribute it across multiple maintainer repos as bounty rewards.
How campaigns work
A campaign has a total USDC budget, a start and end date, and a set of approved repositories. Each approved repo gets a budget cap. Each issue within that repo gets a reward based on its label priority.
| Label | Priority | Example Reward |
|---|---|---|
| critical / bug | High | $20–$50 USDC |
| feature | Medium | $10–$20 USDC |
| documentation | Low | $5 USDC |
| good first issue | Entry | $2–$5 USDC |
Anti-fraud protection
Each repo has a hard budget cap set by the admin. Maintainers cannot assign inflated rewards to specific people. Every payment is on-chain and publicly auditable. This makes the system transparent and tamper-proof.
Dispute Resolution
When contributor and maintainer cannot agree, DealVault provides a structured dispute resolution process. Funds remain locked until the admin makes a final decision.
When to raise a dispute
- Maintainer refuses to approve legitimately completed work
- Contributor submitted work that doesn't match the requirements
- Either party believes the other acted in bad faith
The process
release_funds or refund_maintainer on the contract. On-chain. Final. Logged.Leaderboard
The leaderboard ranks contributors by points earned through completed bounties, creating healthy competition and recognising top contributors.
How points work
| Issue type | Points | Typical reward |
|---|---|---|
| Critical bug | 50 pts | $20–$50 USDC |
| Feature | 20 pts | $10–$20 USDC |
| Documentation | 5 pts | $5 USDC |
| Good first issue | 2 pts | $2–$5 USDC |
The leaderboard resets per campaign period. Top contributors gain reputation, visibility, and priority placement in future applications.
Financials
The Financials tab shows a full transaction history of every USDC payment you've sent or received on DealVault.
What you'll find here
- All completed deal payouts with Stellar transaction hashes
- Current USDC balance locked in active escrows
- Platform fees deducted per deal
- Links to view each transaction on Stellar Explorer
Every transaction on DealVault is publicly verifiable on the Stellar blockchain. The transaction hash is always provided so you can independently verify any payment.
Contract Overview
The DealVault Soroban escrow contract is the trustless core of the platform. Written in Rust, deployed on Stellar.
The contract is responsible for three things: locking funds, releasing funds, and refunding funds. No other logic. No complexity. Just three states, enforced by code.
The contract is non-upgradeable after deployment. The rules cannot be changed by DealVault, maintainers, or contributors. This is the basis of trustlessness.
Core Functions
Four functions. That's all the escrow contract needs.
| Function | Who calls it | What it does |
|---|---|---|
| fund_escrow | Maintainer | Locks USDC into the contract for a specific deal ID |
| release_funds | Maintainer (on approval) | Sends 98% to contributor, 2% to DealVault wallet |
| refund_maintainer | Admin only | Returns full amount to maintainer (dispute ruling) |
| raise_dispute | Either party | Flags the deal for admin review. Funds remain locked. |
pub fn release_funds( env: Env, deal_id: Symbol, maintainer: Address, platform_wallet: Address, ) { maintainer.require_auth(); let (contributor, amount, usdc_token): (Address, i128, Address) = env.storage().instance().get(&deal_id).unwrap(); let fee = amount * 2 / 100; // 2% platform fee let payout = amount - fee; // 98% to contributor let client = token::Client::new(&env, &usdc_token); client.transfer(&env.current_contract_address(), &contributor, &payout); client.transfer(&env.current_contract_address(), &platform_wallet, &fee); }
Deployment
Deploy the DealVault escrow contract to Stellar Testnet or Mainnet using the Stellar CLI.
# 1. Install Stellar CLI cargo install stellar-cli # 2. Generate funded testnet identity stellar keys generate alice --network testnet --fund # 3. Build the contract stellar contract build # 4. Deploy to Testnet stellar contract deploy --wasm target/wasm32v1-none/release/escrow.wasm --source-account alice --network testnet --alias dealvault_escrow # Returns contract ID starting with C... # 5. Deploy to Mainnet (when ready) stellar contract deploy --wasm target/wasm32v1-none/release/escrow.wasm --source-account YOUR_MAINNET_KEY --network mainnet
Architecture
DealVault is a three-layer system: a web frontend, a Node.js backend, and a Soroban smart contract on Stellar.
┌─────────────────────────────────────┐
│ Frontend (React + TypeScript) │
│ Freighter wallet integration │
│ Deployed on Vercel │
└──────────────┬──────────────────────┘
│ REST API
┌──────────────▼──────────────────────┐
│ Backend (Node.js + Express) │
│ Deal metadata · Users · Notifs │
│ MongoDB · Socket.io · JWT │
│ Deployed on Render │
└──────────────┬──────────────────────┘
│ Stellar SDK
┌──────────────▼──────────────────────┐
│ Soroban Smart Contract (Rust) │
│ fund_escrow · release · refund │
│ Stellar Mainnet / Testnet │
└─────────────────────────────────────┘
The backend never touches money. It only manages metadata (deal info, user profiles, notifications) and calls the Soroban contract when needed. All financial logic is in the contract.
Tech Stack
Every tool in the DealVault system and why it was chosen.
| Layer | Technology | Purpose |
|---|---|---|
| Smart Contract | Soroban (Rust) | Escrow logic — fund, release, refund |
| Blockchain | Stellar | Transaction settlement |
| Asset | USDC on Stellar | Stable escrow currency |
| Wallet | Freighter / Lobstr / xBull | User signs transactions |
| Frontend | React + TypeScript + Vite | User interface |
| Styling | Tailwind CSS | Component styling |
| Backend | Node.js + Express | API + business logic |
| Database | MongoDB | Users, deals, logs |
| Auth | GitHub OAuth + JWT | Authentication |
| Realtime | Socket.io | Live notifications |
| Hosting FE | Vercel | Frontend deployment |
| Hosting BE | Render | Backend deployment |
Fee Structure
DealVault charges a flat 2% platform fee on every successfully completed deal. No subscription fees. No setup costs. Pay only when work is done.
Deal amount: 100.00 USDC Platform fee (2%): 2.00 USDC → DealVault Contributor receives: 98.00 USDC → Contributor wallet Stellar gas: ~0.000003 USD → Network only
The fee split is enforced inside the Soroban contract — it happens automatically on approval. DealVault cannot charge more than 2% and cannot take funds without approval.
Security
DealVault is built security-first, from smart contract design to KYC to audit logging.
Smart contract security
- All functions use
require_auth()— only authorised parties can call critical functions - Funds cannot be accessed by DealVault unilaterally
- Contract is open source and auditable by anyone
- Deployed as immutable — rules cannot be changed post-deployment
Platform security
- KYC verification for all participants — real identity behind every account
- JWT authentication with short expiry + refresh tokens
- All user data encrypted at rest and in transit
- Every action logged in a tamper-evident audit log
- GitHub OAuth — no passwords stored