https://api.tokenone.com.brx-api-key: YOUR_API_KEY| Recurso | Descrição | Endpoints |
|---|---|---|
| Wallets | Carteiras digitais ERC-4337 | 3 endpoints |
| Tokens | Tokens ERC-20 personalizados | 9 endpoints |
| Transfers | Transferências de tokens | 3 endpoints |
| Audit | Logs de auditoria | 1 endpoint |
| Rede | Identificador | Tipo |
|---|---|---|
| Polygon Mainnet | polygon-mainnet | Produção |
| Polygon Amoy | polygon-amoy | Testnet |
POST /v1/wallets{
"network": "polygon-mainnet",
"extRef": "customer-12345"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
network | string | Sim | Rede blockchain: polygon-mainnet ou polygon-amoy |
extRef | string | Não | Referência externa para seu sistema |
201 Created{
"id": "wallet-uuid",
"address": "0x1234...5678",
"network": "polygon-mainnet",
"status": "active",
"extRef": "customer-12345",
"createdAt": "2025-12-23T10:00:00Z"
}GET /v1/wallets| Parâmetro | Tipo | Descrição | Exemplo |
|---|---|---|---|
page | integer | Número da página (padrão: 1) | 1 |
pageSize | integer | Itens por página (padrão: 20, máx: 100) | 50 |
network | string | Filtrar por rede | polygon-mainnet |
status | string | Filtrar por status | active |
address | string | Filtrar por endereço | 0x123... |
extRef | string | Filtrar por referência externa | customer-123 |
200 OK{
"data": [
{
"id": "wallet-uuid",
"address": "0x1234...5678",
"network": "polygon-mainnet",
"status": "active",
"extRef": "customer-12345",
"createdAt": "2025-12-23T10:00:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 20,
"totalItems": 150,
"totalPages": 8
}
}GET /v1/wallets/{address}| Parâmetro | Tipo | Descrição |
|---|---|---|
address | string | Endereço da wallet (0x...) |
200 OK{
"id": "wallet-uuid",
"address": "0x1234...5678",
"network": "polygon-mainnet",
"status": "active",
"balance": {
"native": "1.5",
"tokens": [
{
"contractAddress": "0xtoken...",
"symbol": "MTK",
"balance": "1000.0",
"decimals": 18
}
]
},
"createdAt": "2025-12-23T10:00:00Z"
}POST /v1/tokens{
"walletAddress": "0x1234...5678",
"name": "My Loyalty Points",
"symbol": "LPTS",
"decimals": 18,
"network": "polygon-mainnet",
"initialSupplyTokens": "1000000",
"maxSupplyTokens": "100000000",
"metadata": {
"description": "Pontos de fidelidade da minha plataforma",
"website": "https://meusite.com"
}
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
walletAddress | string | Sim | Endereço da wallet que será owner do token |
name | string | Sim | Nome do token (máx: 64 caracteres) |
symbol | string | Sim | Símbolo do token (2-10 caracteres) |
decimals | integer | Sim | Casas decimais (0-18, recomendado: 18) |
network | string | Sim | Rede blockchain |
initialSupplyTokens | string | Não | Supply inicial (ex: "1000000") |
maxSupplyTokens | string | Não | Supply máximo |
metadata | object | Não | Metadados adicionais |
201 Created{
"token": {
"id": "token-uuid",
"contractAddress": "0xtoken...abc",
"name": "My Loyalty Points",
"symbol": "LPTS",
"decimals": 18,
"network": "polygon-mainnet",
"deployed": true
},
"transactionHash": "0xtxhash...",
"explorerUrls": {
"transaction": "https://polygonscan.com/tx/0x...",
"token": "https://polygonscan.com/token/0x..."
}
}GET /v1/tokens| Parâmetro | Tipo | Descrição |
|---|---|---|
page | integer | Número da página |
pageSize | integer | Itens por página |
network | string | Filtrar por rede |
symbol | string | Filtrar por símbolo |
contractAddress | string | Filtrar por endereço |
200 OK{
"data": [
{
"id": "token-uuid",
"contractAddress": "0xtoken...abc",
"name": "My Loyalty Points",
"symbol": "LPTS",
"decimals": 18,
"network": "polygon-mainnet",
"totalSupply": "1000000",
"deployed": true
}
],
"pagination": {
"page": 1,
"pageSize": 20,
"totalItems": 45,
"totalPages": 3
}
}POST /v1/tokens/{address}/mint| Parâmetro | Tipo | Descrição |
|---|---|---|
address | string | Endereço do contrato do token |
{
"amountTokens": "1000",
"to": "0xrecipient...address",
"reason": "Recompensa por compra - Pedido #12345",
"metadata": {
"orderId": "12345",
"category": "purchase-reward"
}
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amountTokens | string | Sim | Quantidade em tokens (ex: "100" ou "1.5") |
to | string | Sim | Endereço do destinatário |
reason | string | Não* | Motivo da operação (*recomendado para auditoria) |
metadata | object | Não | Dados adicionais estruturados |
200 OK{
"transactionHash": "0xtx...hash",
"amount": "1000",
"to": "0xrecipient...address",
"supplyInfo": {
"totalSupplyBefore": "1000000",
"totalSupplyAfter": "1001000"
}
}POST /v1/tokens/{address}/burn{
"amountTokens": "500",
"reason": "Programa de buyback - Dezembro 2025"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amountTokens | string | Sim | Quantidade a queimar |
reason | string | Não* | Motivo (*recomendado) |
metadata | object | Não | Dados adicionais |
200 OK{
"transactionHash": "0xtx...hash",
"amountBurned": "500",
"supplyInfo": {
"totalSupplyBefore": "1001000",
"totalSupplyAfter": "1000500",
"percentageBurned": "0.05%"
}
}POST /v1/tokens/{address}/burn-from{
"from": "0xuser...address",
"amountTokens": "250",
"reason": "Compliance - Ordem judicial #123/2025",
"metadata": {
"courtOrder": "123/2025",
"court": "Tribunal Federal"
}
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
from | string | Sim | Endereço da carteira |
amountTokens | string | Sim | Quantidade a queimar |
reason | string | Não* | Motivo (*altamente recomendado) |
metadata | object | Não | Dados de compliance |
POST /v1/tokens/{address}/pause{
"reason": "Pausa emergencial - Vulnerabilidade detectada",
"metadata": {
"incidentId": "SEC-2025-001",
"severity": "CRITICAL"
}
}POST /v1/tokens/{address}/unpause{
"reason": "Retomar operações - Vulnerabilidade corrigida",
"metadata": {
"incidentId": "SEC-2025-001",
"patchVersion": "v2.1.0"
}
}POST /v1/tokens/{address}/blocklist{
"userAddress": "0xuser...block",
"reason": "Bloqueio por ordem judicial - Processo 456/2025",
"metadata": {
"processNumber": "456/2025",
"court": "Tribunal de Justiça",
"orderDate": "2025-12-20"
}
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
userAddress | string | Sim | Endereço a bloquear |
reason | string | Não* | Motivo (*altamente recomendado) |
metadata | object | Não | Dados legais/compliance |
POST /v1/tokens/{address}/blocklist/{userAddress}/unblock| Parâmetro | Tipo | Descrição |
|---|---|---|
address | string | Endereço do token |
userAddress | string | Endereço a desbloquear |
{
"reason": "Desbloqueio - Processo encerrado",
"metadata": {
"processNumber": "456/2025",
"closureDate": "2025-12-30"
}
}POST /v1/transfers{
"from": "0xsender...address",
"to": "0xrecipient...address",
"tokenAddress": "0xtoken...address",
"amountTokens": "100",
"reason": "Pagamento por serviços - Nota Fiscal #789",
"metadata": {
"invoiceId": "789",
"service": "Consultoria"
}
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
from | string | Sim | Endereço da wallet de origem |
to | string | Sim | Endereço do destinatário |
tokenAddress | string | Sim | Endereço do token ERC-20 |
amountTokens | string | Sim | Quantidade (ex: "100" ou "1.5") |
reason | string | Não* | Motivo (*recomendado) |
metadata | object | Não | Dados adicionais |
200 OK{
"id": "transfer-uuid",
"from": "0xsender...address",
"to": "0xrecipient...address",
"tokenAddress": "0xtoken...address",
"amount": "100",
"status": "pending",
"hash": "0xtx...hash",
"createdAt": "2025-12-23T15:30:00Z"
}GET /v1/transfers| Parâmetro | Tipo | Descrição |
|---|---|---|
page | integer | Número da página |
pageSize | integer | Itens por página |
walletId | string | Filtrar por wallet |
status | string | Filtrar por status: pending, confirmed, failed |
network | string | Filtrar por rede |
from | string | Filtrar por remetente |
to | string | Filtrar por destinatário |
tokenAddress | string | Filtrar por token |
GET /v1/transfers/{id}| Parâmetro | Tipo | Descrição |
|---|---|---|
id | string | ID da transferência |
GET /v1/audit| Parâmetro | Tipo | Descrição | Exemplo |
|---|---|---|---|
page | integer | Número da página | 1 |
pageSize | integer | Itens por página | 50 |
route | string | Filtrar por rota | /v1/tokens |
method | string | Método HTTP | POST |
action | string | Ação realizada | mint, burn, block |
resourceType | string | Tipo de recurso | tokens, wallets |
statusCode | integer | Código HTTP | 200, 400, 500 |
contractAddress | string | Endereço do contrato | 0xtoken... |
reason | string | Filtrar por motivo | Court order |
startDate | string | Data inicial (ISO 8601) | 2025-12-01T00:00:00Z |
endDate | string | Data final (ISO 8601) | 2025-12-31T23:59:59Z |
200 OK{
"data": [
{
"id": "audit-uuid",
"timestamp": "2025-12-23T10:00:00Z",
"route": "/v1/tokens/:address/mint",
"method": "POST",
"action": "mint",
"resourceType": "tokens",
"resourceId": "token-uuid",
"statusCode": 200,
"contractAddress": "0xtoken...abc",
"reason": "Loyalty reward",
"metadata": {
"amount": "1000",
"to": "0xuser..."
}
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"totalItems": 234,
"totalPages": 5
}
}amountTokens com valores legíveis:{
"amountTokens": "100" // 100 tokens
}{
"amountTokens": "1.5" // 1.5 tokens
}{
"amountTokens": "0.001" // 0.001 tokens
}"amountTokens": "100"100000000000000000000 (wei)| Código | Descrição |
|---|---|
200 | Sucesso (GET, PUT) |
201 | Criado com sucesso (POST) |
400 | Requisição inválida |
401 | Não autenticado (API key inválida) |
403 | Não autorizado |
404 | Recurso não encontrado |
409 | Conflito (recurso já existe) |
429 | Muitas requisições (rate limit) |
500 | Erro interno do servidor |
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"details": {
"amountTokens": "must be greater than 0"
}
}
}| Código | Descrição |
|---|---|
VALIDATION_ERROR | Dados de entrada inválidos |
NOT_FOUND | Recurso não encontrado |
UNAUTHORIZED | API key inválida |
INSUFFICIENT_BALANCE | Saldo insuficiente |
TOKEN_PAUSED | Token está pausado |
USER_BLOCKED | Usuário bloqueado |
INTERNAL_ERROR | Erro interno |
reason em operações críticas:metadata para rastreabilidade: