Raw schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Short job title shown to workers, e.g. \"Photo of the menu board at Cafe Luna\""
},
"description": {
"type": "string",
"description": "Full instructions for the worker"
},
"location_text": {
"type": "string",
"description": "Human-readable place, e.g. \"123 Main St, Denver\""
},
"lat": {
"type": "number",
"description": "Job latitude (enables map pin and location check)"
},
"lng": {
"type": "number",
"description": "Job longitude"
},
"chain": {
"type": "string",
"enum": [
"bsc"
],
"default": "bsc",
"description": "Network. Only BNB Smart Chain (bsc) is live."
},
"token": {
"type": "string",
"enum": [
"USDT",
"USDC",
"NATIVE"
],
"description": "Payment token; NATIVE = BNB"
},
"amount": {
"type": "string",
"description": "Decimal amount, e.g. \"5.00\""
},
"photo_steps": {
"type": "array",
"description": "1-8 proof steps. A string is a photo step; or {type:'photo'|'text'|'checkbox', label}.",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"type",
"label"
],
"properties": {
"type": {
"type": "string",
"enum": [
"photo",
"text",
"checkbox"
]
},
"label": {
"type": "string"
}
}
}
]
}
},
"deadline": {
"type": "string",
"format": "date-time",
"description": "ISO time after which the job expires and is refundable"
},
"radius_m": {
"type": "number",
"description": "Allowed distance from lat/lng for the location check (default 250)"
},
"nearby_first_minutes": {
"type": "number",
"description": "Offer to nearby workers only for this many minutes after funding"
},
"min_completed": {
"type": "number",
"description": "Only workers with at least this many completed jobs can claim"
}
},
"required": [
"title",
"amount",
"photo_steps"
]
}