PRIV ProtocolPRIV Docs
Data Bounty Board

Posting Bounties

Step-by-step guide for businesses to create and manage data bounties on the Data Bounty Board.

Prerequisites

Before posting a bounty, ensure you have:

  1. Registered company account - Complete the B2B company registration
  2. Connected wallet - Link an Ethereum wallet for PRIV token transactions
  3. Sufficient balance - Fund your wallet with PRIV tokens for the bounty budget (funds are held in on-chain escrow via BountyEscrow.sol)
  4. Verification level - Higher levels allow larger budgets and more concurrent bounties

Creating a Bounty

Step 1: Define Your Bounty

Navigate to the B2B Dashboard and click Post a Bounty. Fill in the basic information:

FieldDescriptionRequirements
TitleClear, descriptive title5-200 characters
DescriptionDetailed requirements20-5000 characters
Bounty TypeData format neededimage, video, audio, voice, text, behavioral, location, mixed
TagsDiscovery keywords1-10 tags, max 50 chars each

Step 2: Set Pricing and Budget

Configure the financial parameters:

┌─────────────────────────────────────────────────┐
│              Pricing Configuration              │
├─────────────────────────────────────────────────┤
│                                                 │
│  Price Per Item:    [  0.50  ] PRIV             │
│                     ↓                           │
│  Target Items:      [ 10,000 ]                  │
│                     ↓                           │
│  Maximum Budget:    [ 5,000  ] PRIV             │
│                                                 │
│  Estimated Cost Breakdown:                      │
│  ├── Contributor Payout (97%):  4,850 PRIV     │
│  ├── Protocol Fee (3%):          150 PRIV      │
│  │   ├── Burn (40%):              60 PRIV      │
│  │   ├── Stakers (35%):           52.5 PRIV    │
│  │   └── Treasury (25%):          37.5 PRIV    │
│  └── Total:                     5,000 PRIV     │
│                                                 │
│  Escrow: Funds locked in BountyEscrow.sol      │
│                                                 │
└─────────────────────────────────────────────────┘
ParameterDescriptionLimits
Price Per ItemPRIV tokens paid per approved submission0.001 - 100 PRIV
Target ItemsNumber of submissions you want1 - 10,000,000
Maximum BudgetTotal spend cap (held in escrow)Based on verification level
Expiration DateWhen the bounty closesOptional, must be future date

Step 3: Quality Requirements

Specify the quality standards for submissions:

// Quality requirements schema
{
  "qualityRequirements": {
    // Minimum quality tier: basic, verified, premium
    "minQualityTier": "verified",

    // Minimum contributor reputation level (0-4)
    "minReputationLevel": 1,

    // Require approver voting for all submissions
    "requireApproverVoting": true,

    // Custom validation rules (optional)
    "customRules": {
      "requireMetadata": true,
      "uniqueContentOnly": true
    }
  }
}

Enabling stake-backed QA (approver voting) adds a 25% premium to the cost but significantly improves data quality. Approvers stake 500 PRIV and require a 3-vote quorum with 66.67% consensus.

Define what consent contributors must provide:

Consent TypeDescriptionDefault
AI TrainingData can be used for AI/ML model trainingRequired
CommercialData can be used in commercial productsOptional
ResearchData can be used for academic researchOptional
Allow AnonymousAccept submissions from anonymous contributorsNo

Step 5: Content Specifications

Provide detailed specifications based on your bounty type.

Image Bounties

{
  "contentSpec": {
    "minWidth": 800,
    "maxWidth": 4000,
    "minHeight": 600,
    "maxHeight": 3000,
    "aspectRatio": "16:9",
    "format": "jpeg",
    "colorMode": "rgb",
    "subjects": ["street scenes", "urban environments"],
    "prohibited": ["faces", "license plates"],
    "background": "natural"
  }
}

Video Bounties

{
  "contentSpec": {
    "minDuration": 5,
    "maxDuration": 60,
    "minResolution": "720p",
    "maxResolution": "4k",
    "fps": 30,
    "requireAudio": false,
    "orientation": "landscape",
    "categories": ["outdoor", "nature"]
  }
}

Voice Bounties

{
  "contentSpec": {
    "minDuration": 10,
    "maxDuration": 300,
    "language": "en",
    "accents": ["american", "british"],
    "gender": "any",
    "ageRange": "adult",
    "emotions": ["neutral", "happy"],
    "transcriptRequired": true,
    "script": "Read the following sentences clearly..."
  }
}

Text Bounties

{
  "contentSpec": {
    "minCharCount": 500,
    "maxCharCount": 5000,
    "minWordCount": 100,
    "maxWordCount": 1000,
    "language": "en",
    "contentType": "conversation",
    "format": "json",
    "topics": ["customer support", "product inquiries"],
    "prohibitedTopics": ["politics", "religion"]
  }
}

Step 6: Geographic Restrictions

Optionally restrict which countries can contribute:

{
  // Only accept from these countries (ISO 3166-1 alpha-2)
  "allowedCountries": ["US", "CA", "GB", "DE", "FR"],

  // Or exclude specific countries
  "excludedCountries": ["XX", "YY"],

  // Minimum contributor age (13-100)
  "minContributorAge": 18
}

Step 7: Instructions and Samples

Provide clear instructions for contributors:

{
  "instructions": `
## How to Submit

1. Capture original photos of street scenes
2. Ensure no identifiable faces or text
3. Upload in JPEG format at full resolution
4. Include location metadata if available

## Quality Guidelines

- Sharp focus on main subject
- Good lighting (avoid harsh shadows)
- Horizontal orientation preferred
- No filters or heavy editing
`,
  "sampleUrls": [
    "https://example.com/sample1.jpg",
    "https://example.com/sample2.jpg"
  ]
}

API Reference

Create Bounty

curl -X POST https://api.privlabs.io/v1/b2b/requests \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Urban Street Photography Dataset",
    "description": "High-quality street photography for training computer vision models. Looking for diverse urban scenes from around the world.",
    "requestType": "image",
    "pricePerItem": "0.50",
    "targetItems": 10000,
    "maxBudget": "5000",
    "expiresAt": "2026-06-01T00:00:00Z",
    "tags": ["photography", "urban", "street", "computer-vision"],
    "consentRequirements": {
      "aiTraining": true,
      "commercial": true,
      "research": false,
      "allowAnonymous": false
    },
    "qualityRequirements": {
      "minQualityTier": "verified",
      "minReputationLevel": 1,
      "requireAudit": true
    },
    "contentSpec": {
      "minWidth": 1920,
      "minHeight": 1080,
      "format": "jpeg",
      "subjects": ["streets", "buildings", "vehicles"],
      "prohibited": ["faces", "text"]
    },
    "minContributorAge": 18,
    "instructions": "Capture original street photography..."
  }'

Response

{
  "success": true,
  "data": {
    "id": "req_a1b2c3d4e5f6",
    "companyId": "com_x1y2z3",
    "companyName": "AI Vision Labs",
    "title": "Urban Street Photography Dataset",
    "description": "High-quality street photography...",
    "requestType": "image",
    "pricePerItem": "0.50",
    "targetItems": 10000,
    "currentItems": 0,
    "maxBudget": "5000",
    "spentBudget": "0",
    "status": "draft",
    "expiresAt": "2026-06-01T00:00:00Z",
    "tags": ["photography", "urban", "street", "computer-vision"],
    "consentRequirements": {
      "aiTraining": true,
      "commercial": true,
      "research": false,
      "allowAnonymous": false
    },
    "qualityRequirements": {
      "minQualityTier": "verified",
      "minReputationLevel": 1,
      "requireAudit": true
    },
    "createdAt": "2026-02-04T10:00:00Z",
    "updatedAt": "2026-02-04T10:00:00Z"
  }
}

List Your Bounties

curl https://api.privlabs.io/v1/b2b/requests \
  -H "Authorization: Bearer sk_live_xxx"

Update Bounty

curl -X PUT https://api.privlabs.io/v1/b2b/requests/req_a1b2c3d4e5f6 \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "pricePerItem": "0.75",
    "targetItems": 15000,
    "status": "active"
  }'

View Submissions

curl https://api.privlabs.io/v1/b2b/requests/req_a1b2c3d4e5f6/submissions \
  -H "Authorization: Bearer sk_live_xxx"

Bounty Lifecycle

┌─────────┐     ┌──────────────────┐     ┌────────┐
│  Draft  │ ──> │ Pending Approval │ ──> │ Active │
└─────────┘     └──────────────────┘     └────────┘
     │                   │                    │
     │                   │                    ├──> Paused
     │                   │                    │      │
     │                   │                    │      ▼
     │                   │                    ├──> Active
     │                   │                    │
     │                   │                    ├──> Fulfilled (target reached)
     │                   │                    │
     │                   │                    ├──> Expired (deadline passed)
     │                   │                    │
     ▼                   ▼                    ▼
 Cancelled           Rejected            Cancelled
StatusDescriptionActions Available
DraftBeing created/editedEdit, Submit for approval, Cancel
Pending ApprovalUnder platform reviewWait, Cancel
ActiveAccepting submissions (escrow funded)Pause, Cancel, Download data
PausedTemporarily suspendedResume, Cancel
FulfilledTarget reachedDownload data
ExpiredDeadline passedReactivate (extend deadline)
CancelledManually cancelled (escrow refunded)None (terminal)
RejectedFailed platform reviewRevise and resubmit

Best Practices

Writing Effective Bounty Descriptions

  • Be specific about what you need
  • Include examples of acceptable content
  • List common rejection reasons upfront
  • Explain the purpose (helps contributors understand context)

Setting Appropriate Prices

Data TypeTypical Price RangeFactors
Simple images0.05 - 0.25 PRIVResolution, subject
Complex images0.25 - 1.00 PRIVSpecific requirements
Short video0.50 - 2.00 PRIVDuration, quality
Voice recordings0.25 - 1.00 PRIVLength, language
Text content0.10 - 0.50 PRIVWord count, complexity

Setting prices too low will result in fewer submissions and lower quality. Research market rates before pricing.

Quality vs. Quantity

  • High volume needs: Lower price, basic quality tier
  • High quality needs: Higher price, enable approver voting, premium tier
  • Specialized content: Premium price, specific requirements, verified contributors

Payment Tiers

TierFeeDiscountDescription
Standard3%--Pay with any method
DirectPRIV3%15% discount on bounty costPay directly in PRIV tokens
StakedPRIV2%20% discount on bounty costPay with staked PRIV balance

Troubleshooting

IssueSolution
Bounty not receiving submissionsCheck pricing competitiveness, broaden requirements
High rejection rateClarify instructions, provide more examples
Budget exhausted before targetIncrease budget or reduce target
Wrong file formats receivedBe explicit about format requirements

Next Steps