Analisar carteira
Scope: crypto-risk.write para criar; crypto-risk.read para listar, detalhar e consultar ingestão.
Criar análise
Endpoint: POST /crypto-risk/analyses
curl --location 'https://secureapi.onz.finance/api/v2/crypto-risk/analyses' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"network": "ETHEREUM",
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
}'
| Campo | Obrigatório | Descrição |
|---|---|---|
network | Sim | ETHEREUM ou TRON. Qualquer outro valor, inclusive BITCOIN e TRX, responde 422. |
address | Sim | Endereço da carteira (1–128 caracteres). |
Não envie accountId. A conta vem da credencial (BaaS usa x-account-id).
201 — snapshot fechado
Histórico já ingerido. A resposta vem em { data } com id, scores, historyCovered, versões e events.
{
"data": {
"id": "10",
"network": "ETHEREUM",
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"status": "COMPLETED",
"riskScore": 0,
"riskLevel": "LOW",
"confidenceScore": 11,
"historyCovered": false,
"hardStop": false,
"hardStopRule": null,
"startedAt": "2026-08-21T12:00:00.000Z",
"completedAt": "2026-08-21T12:00:02.000Z",
"createdAt": "2026-08-21T12:00:00.000Z",
"events": []
}
}
Neste exemplo, riskScore = 0, confiança baixa e historyCovered = false é ingest vazio, não carteira limpa.
202 — ingestão aceita
A carteira ainda não tem índice pronto. Não há analysis id.
{
"data": {
"status": "ACCEPTED",
"network": "TRON",
"address": "Taddr",
"maxTransactions": 5000,
"ingest": {
"status": "RUNNING",
"network": "TRON",
"address": "Taddr",
"fetched": 12,
"persisted": null,
"errorMessage": null
}
}
}
Faça poll em GET /crypto-risk/ingest e, quando IDLE com persisted != null, repita o POST. Retry do POST enquanto o ingest desta carteira está RUNNING também devolve 202. Ingest de outra carteira devolve 409.
Consultar ingestão
Endpoint: GET /crypto-risk/ingest?network=&address=
Scope: crypto-risk.read
curl --location 'https://secureapi.onz.finance/api/v2/crypto-risk/ingest?network=TRON&address=Taddr' \
--header 'Authorization: Bearer <access_token>'
network e address são obrigatórios.
Pronto para o POST de 201 quando status = IDLE e persisted != null. persisted = 0 é índice vazio válido.
{
"data": {
"status": "IDLE",
"network": "TRON",
"address": "Taddr",
"fetched": 0,
"persisted": 0,
"errorMessage": null
}
}
Consultar snapshot
Endpoint: GET /crypto-risk/analyses/{id}
Scope: crypto-risk.read
O id é inteiro positivo. Análise de outra conta responde 404.
curl --location 'https://secureapi.onz.finance/api/v2/crypto-risk/analyses/10' \
--header 'Authorization: Bearer <access_token>'
A resposta é o mesmo snapshot fechado do 201, com events (sem hash e sem endereço de contraparte).
Listar
Endpoint: GET /crypto-risk/analyses
Scope: crypto-risk.read
| Query | Obrigatório | Descrição |
|---|---|---|
network | Não | ETHEREUM ou TRON. Obrigatório se enviar address. |
address | Não | Exige network. |
page | Não | Padrão 1. Máximo 10000. |
limit | Não | Padrão 20. Máximo 100. |
curl --location 'https://secureapi.onz.finance/api/v2/crypto-risk/analyses?network=ETHEREUM&page=1&limit=20' \
--header 'Authorization: Bearer <access_token>'
Resposta { meta: { total, page, limit }, data }. Os itens não incluem events.