Interfaces

REST API

Servidor FastAPI com Swagger, autenticação, rate limiting e SSE streaming.

O Arc DevKit inclui um servidor FastAPI completo com Swagger UI, autenticação por API key, rate limiting e streaming em tempo real.

Iniciando o servidor

uvicorn arc_devkit.api.main:app --reload
  • Swagger UI → http://localhost:8000/docs
  • ReDoc → http://localhost:8000/redoc

Via Docker

docker compose up

Endpoints

MétodoRotaDescrição
POST/copilot/askPergunta ao Dev Copilot
POST/copilot/ask/streamResposta SSE (token a token)
GET/agents/balance/{address}Saldo da carteira
POST/agents/walletCriar nova carteira
POST/agents/paymentExecutar pagamento
GET/agents/blockBloco atual + chain ID
WS/agents/monitor/{address}Eventos em tempo real (WebSocket)
GET/debug/tx/{hash}Analisar transação
GET/debug/historyHistórico paginado
GET/healthHealth check + RPC

Autenticação

Defina API_KEY nas variáveis de ambiente para habilitar:

export API_KEY="sua-chave-secreta"

Passe em toda requisição via header:

curl -H "X-API-Key: sua-chave-secreta" http://localhost:8000/health

Sem API_KEY definida, a autenticação é desabilitada (desenvolvimento local).

Exemplos de requisições

Dev Copilot

curl -X POST http://localhost:8000/copilot/ask \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Como envio USDC na Arc?"}'

SSE Streaming

curl -X POST http://localhost:8000/copilot/ask/stream \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Escreva um contrato USDC vault"}' \
  --no-buffer

# Stream:
# data: {"token": "Para "}
# data: {"token": "criar "}
# ...
# data: {"done": true}

Saldo

curl http://localhost:8000/agents/balance/0xSuaCarteira
# {"native": "1.5", "usdc": "10.000000", "address": "0x..."}

Pagamento

curl -X POST http://localhost:8000/agents/payment \
  -H "Content-Type: application/json" \
  -d '{"to": "0xDest", "amount_usdc": 5.0, "token": "usdc"}'

Debug de transação

curl http://localhost:8000/debug/tx/0xSeuTxHash

CORS

Pré-configurado para:

  • localhost:3000
  • localhost:5173
  • localhost:8080

Para adicionar origens, edite arc_devkit/api/main.py.