POST /api/quests/verify
Verifica se um usuário completou uma quest específica.
{
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"periodo": {
"start_time": 1694908800,
"end_time": 1695513600
},
"valor": "400",
"token": "XLM",
"detailed": false
}{
"success": true,
"message": "Quest completed successfully",
"data": {
"quest_completed": true,
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"verification_timestamp": 1695513600
}
}{
"success": true,
"message": "Quest verification completed with details",
"data": {
"quest_completed": true,
"verification_details": {
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"quest_type": "TRADING_VOLUME",
"valor_verificado": "400",
"timestamp": 1695513600
},
"timestamp": 1695513600
}
}POST /api/quests/verify-batch
Verifica múltiplas quests para um usuário de uma vez.
{
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"quests": [
{
"quest_id": 1,
"periodo": {
"start_time": 1694908800,
"end_time": 1695513600
},
"valor": "400",
"token": "XLM"
},
{
"quest_id": 2,
"periodo": {
"start_time": 1694908800,
"end_time": 1695513600
},
"valor": "800",
"token": "USDC"
}
]
}{
"success": true,
"message": "Batch verification completed: 2/2 quests completed",
"data": {
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"total_quests": 2,
"completed_quests": 2,
"completion_rate": 100,
"results": [
{
"quest_id": 1,
"token": "XLM",
"valor": "400",
"completed": true,
"verified_at": 1695513600
},
{
"quest_id": 2,
"token": "USDC",
"valor": "800",
"completed": true,
"verified_at": 1695513600
}
],
"batch_verification_timestamp": 1695513600
}
}# Verificação individual
curl -X POST http://localhost:3000/api/quests/verify \
-H "Content-Type: application/json" \
-d '{
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"periodo": {
"start_time": 1694908800,
"end_time": 1695513600
},
"valor": "400",
"token": "XLM"
}'
# Verificação detalhada
curl -X POST http://localhost:3000/api/quests/verify \
-H "Content-Type: application/json" \
-d '{
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"periodo": {
"start_time": 1694908800,
"end_time": 1695513600
},
"valor": "400",
"token": "XLM",
"detailed": true
}'
# Verificação em lote
curl -X POST http://localhost:3000/api/quests/verify-batch \
-H "Content-Type: application/json" \
-d '{
"user_address": "GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA",
"quests": [
{
"quest_id": 1,
"periodo": {"start_time": 1694908800, "end_time": 1695513600},
"valor": "400",
"token": "XLM"
}
]
}'// Verificação individual
const response = await fetch('/api/quests/verify', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_address: 'GDQVUCDWEYLVL7HF6F7LYMK6LZCR6MWJNWGWI2K2JPFEXJXBMJWQZQHA',
periodo: {
start_time: Math.floor(Date.now() / 1000) - 86400 * 7, // 7 dias atrás
end_time: Math.floor(Date.now() / 1000) // agora
},
valor: '400',
token: 'XLM'
})
});
const result = await response.json();
console.log('Quest completed:', result.data.quest_completed);- ✅
user_address: Exatamente 56 caracteres (formato Stellar) - ✅
periodo.start_time: Timestamp Unix válido - ✅
periodo.end_time: Timestamp Unix válido - ✅
valor: String não vazia - ✅
token: String não vazia - ✅
detailed: Boolean opcional
- ✅
user_address: Exatamente 56 caracteres - ✅
quests: Array não vazio - ✅ Cada quest deve ter
periodo,valoretokenválidos - ✅ Timestamps válidos para cada quest
- 200: Verificação realizada com sucesso
- 400: Erro de validação (dados inválidos)
- 500: Erro interno do servidor
- ✅ Completa para valores ≤ 500
- ❌ Falha para valores > 500
- ✅ Completa para valores ≤ 1000
- ❌ Falha para valores > 1000
- 🎲 50% de chance aleatória de completar
- Integração Real: Conectar com APIs do Stellar para dados reais
- Cache: Implementar sistema de cache para otimizar performance
- Rate Limiting: Adicionar limitação de taxa para as APIs
- Webhooks: Notificações automáticas quando quests são completadas
- Analytics: Métricas detalhadas de performance e uso
As APIs estão funcionais e prontas para integração!