SOTER-BOUNTY
www.soter.fun
Last updated
www.soter.fun
Last updated
// Database schema
model Project {
id Int @id @default(autoincrement())
userId Int
projectName String
ticker String
description String
pfp String? // base64 or URL
banner String?
style String // degen, tech, meme, luxury, etc.
xCommunityLink String
xLink String?
website String?
telegram String?
referenceImages Json // string[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id])
bounties BountySession[]
studioPosts StudioPost[]
}// POST /api/ai/openai
interface GenerateTasksRequest {
action: "generateBountyTasks";
projectId: number;
sessionName: string;
taskCount: number;
}
// OpenAI prompt construction
const prompt = `
You are SOTER AI, an expert community engagement strategist.
Project Details:
- Project Name: ${project.projectName}
- Ticker: $${project.ticker}
- Description: ${project.description}
- Style: ${project.style}
- X Community: ${project.xCommunityLink}
Bounty Session: "${sessionName}"
Generate exactly ${taskCount} creative engagement tasks for X.
Each task should help grow the community and increase visibility.
Format as JSON array:
[
{
"taskName": "Task name (max 40 chars)",
"taskDescription": "What to do (max 200 chars)"
}
]
`;// GET /api/bounties?projectId={id}
interface BountySession {
id: number;
projectId: number;
sessionName: string;
tasks: {
id: number;
taskName: string;
taskDescription: string;
reward: number;
status: "active" | "completed";
}[];
createdAt: string;
}
// POST /api/bounties
interface CreateSessionRequest {
projectId: number;
sessionName: string;
tasks: {
taskName: string;
taskDescription: string;
}[];
}