{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the campaign"
},
"banner_url": {
"type": "string",
"format": "uri",
"description": "URL of the banner image shown to users"
},
"poster_url": {
"type": "string",
"format": "uri",
"description": "URL of the poster image shown to users"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the campaign was created"
},
"created_by": {
"type": "string",
"description": "Username of the campaign creator"
},
"created_by_publicKey": {
"type": "string",
"description": "Public key of the campaign creator"
},
"description": {
"type": "string",
"description": "Detailed description of the campaign"
},
"starts_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the campaign starts"
},
"ends_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the campaign ends"
},
"fuel_required": {
"type": "number",
"description": "Amount of fuel required for participation"
},
"is_active": {
"type": "boolean",
"description": "Whether the campaign is currently active"
},
"latitude": {
"type": "number",
"description": "Geographical latitude of the campaign center"
},
"longitude": {
"type": "number",
"description": "Geographical longitude of the campaign center"
},
"radius": {
"type": "number",
"description": "Radius in kilometers within which the campaign is valid"
},
"location_limit_in_meters": {
"type": "number",
"description": "Limit in meters for location verification"
},
"max_submissions": {
"type": "integer",
"description": "Maximum total submissions allowed for the campaign"
},
"max_submissions_per_witness": {
"type": "integer",
"description": "Maximum submissions allowed per individual witness"
},
"submissions": {
"type": "integer",
"description": "Current number of submissions received"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of tags associated with the campaign"
},
"type": {
"type": "string",
"enum": ["individual", "group", "task"],
"description": "Type of campaign"
},
"currency": {
"type": "string",
"description": "Currency type for rewards"
},
"reward_per_task": {
"type": "number",
"description": "Amount of reward given per completed task"
},
"total_rewards": {
"type": "number",
"description": "Total rewards available for the campaign"
},
"tasks": {
"type": "object",
"description": "For task-type campaigns, contains task definitions",
"additionalProperties": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of the task"
},
"fuel_required": {
"type": "number",
"description": "Amount of fuel required for this specific task"
}
}
}
},
"whitelist": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of public keys allowed to participate in this campaign"
}
}
}
}
}
}
{
"result": [
{
"banner_url": "https://truesnap.s3.us-east-1.amazonaws.com/horizontal_artistics_eye_for_ai.png",
"created_at": "2025-01-31T14:53:25.800Z",
"created_by": "@witnesschain",
"description": "Get started with the first artistic eye for AI campaign",
"ends_at": "2025-05-11T14:53:25.800Z",
"fuel_required": 1,
"id": "ArtisticEyeForAI",
"is_active": true,
"latitude": 40,
"longitude": -73,
"max_submissions": 500000,
"max_submissions_per_witness": 10,
"poster_url": "https://truesnap.s3.us-east-1.amazonaws.com/2.png",
"radius": 20000,
"starts_at": "2025-01-31T14:53:25.800Z",
"submissions": 110,
"tags": ["AI", "Art"],
"type": "individual"
},
{
"banner_url": "https://truesnap.s3.us-east-1.amazonaws.com/6176690776340284330.jpg",
"created_at": "2025-02-21T06:46:56.833Z",
"created_by": "@witnesschain",
"created_by_publicKey": "0x701441ee7150744fb01b7cb8aa5366617451f9f6",
"currency": "POINTS",
"description": "Prove your gains",
"ends_at": "2025-06-01T06:43:37.751Z",
"fuel_required": 1,
"id": "ProveYourGains",
"is_active": true,
"latitude": 40,
"location_limit_in_meters": 22000000,
"longitude": -73,
"max_submissions": 500000,
"max_submissions_per_witness": 10,
"poster_url": "https://truesnap.s3.us-east-1.amazonaws.com/6176690776340284331.jpg",
"radius": 22000,
"reward_per_task": 2,
"starts_at": "2025-02-21T06:40:28.230Z",
"submissions": 6,
"tags": ["loss", "gains"],
"total_rewards": 10000,
"type": "individual"
}
]
}
Example Task-Type Campaign Response
{
"result": [
{
"banner_url": "https://images.wallpapersden.com/image/download/serene-nature-hd-pixel-art-sunset_bmhlZ22UmZqaraWkpJRnamtlrWZpaGo.jpg",
"created_at": "2025-02-21T13:07:15.584Z",
"created_by": "@witnesschain",
"created_by_publicKey": "0xae3c67152ee393082f85e9d59a471b375f3ce406",
"currency": "POINTS",
"description": "This is a test campaign for the type \"task\"",
"ends_at": "2025-03-06T11:33:07.423Z",
"fuel_required": 1,
"id": "my-task-campaign",
"is_active": true,
"latitude": 13.03,
"location_limit_in_meters": 1000,
"longitude": 77.5,
"max_submissions": 10000,
"poster_url": "https://placehold.co/180x320",
"radius": 100,
"reward_per_task": 1,
"starts_at": "2025-02-24T11:33:07.423Z",
"submissions": 7,
"tags": [],
"tasks": {
"task0": {
"description": "Test task 0. Upload a random picture to test multi-task campaigns",
"fuel_required": 1
},
"task1": {
"description": "Test task 1. Upload a random picture to test multi-task campaigns",
"fuel_required": 1
},
"task2": {
"description": "Test task 2. Upload a random picture to test multi-task campaigns",
"fuel_required": 1
}
},
"total_rewards": 10,
"type": "task",
"whitelist": [
"0x...",
"0x..."
]
}
]
}
Task-Type Campaign Fields