Ferros
API-First Platform

The API-first platform
for digital assets

RESTful APIs with comprehensive webhooks, real-time events, and full programmatic control. Build anything.

Base URL https://api.ferros.xyz/v1

Everything you need to integrate

Clean, consistent APIs designed for developers. From authentication to webhooks, every detail is thoughtfully crafted.

RESTful API

Clean JSON REST API at api.ferros.xyz/v1. Consistent resource patterns for wallets, transactions, vaults, workflows, and policies. Standard HTTP methods with predictable URL structures.

GET POST PUT DELETE

Webhook Events

14 event types covering the full transaction lifecycle, vault activity, workflow triggers, and infrastructure alerts. Every payload is HMAC-SHA256 signed for verification.

transaction.* vault.* workflow.*

API Key Management

Generate, rotate, and revoke API keys through the dashboard or API. SHA-256 hashed storage ensures keys are never stored in plaintext. Prefixed with cv_ for easy identification.

Active Revoked Expired

Dual Authentication

API Key via X-API-Key header for server-to-server integration. JWT Bearer token for user sessions with embedded userId, orgId, and role claims. Choose the right auth model for each use case.

X-API-Key Bearer JWT
Endpoint Overview

Comprehensive resource coverage

Every entity in the Ferros platform is a first-class API resource. Wallets, transactions, vaults, workflows, addresses, and signing requests are all accessible via consistent REST patterns.

All endpoints return wrapped responses with consistent error handling, pagination metadata, and predictable HTTP status codes.

50+
Endpoints
6
Resource Groups
14
Webhook Events
API Resources
Method Path Description
GET /v1/wallets List wallets (paginated)
POST /v1/wallets Create wallet
GET /v1/transactions List with status/chain filters
POST /v1/transactions Create transaction
POST /v1/transactions/:id/approve Approve transaction
POST /v1/transactions/:id/execute Execute on-chain
GET /v1/vaults List vaults (paginated)
POST /v1/vaults Create vault + wallets
POST /v1/workflows/:id/activate Activate workflow
POST /v1/workflows/:id/run Manual trigger
POST /v1/addresses Generate via HD derivation
POST /v1/signing-requests/:id/signature Submit signature
Webhook Event Types
transaction.created New transaction initiated
transaction.completed Transaction confirmed
transaction.failed Transaction failed on-chain
wallet.created New wallet generated
vault.deposit Deposit received in vault
vault.created New customer vault
workflow.triggered Workflow run started
workflow.completed Workflow run finished
policy.triggered Policy rule matched
gas_tank.low Gas below threshold
Webhooks Deep Dive

Real-time event delivery

Every webhook payload is signed with HMAC-SHA256 using your webhook secret. Verify the X-Ferros-Signature header to ensure payloads are authentic and untampered.

HMAC-SHA256 Verification

Compute HMAC of the raw payload body using your webhook secret. Compare with the signature header.

Structured Payloads

Every event includes event type, timestamp, resource ID, and full resource data in a consistent JSON envelope.

Automatic Retries

Failed deliveries are retried with exponential backoff. Webhook status is tracked and surfaced in the dashboard.

Test Fire

Send a test event to any registered webhook endpoint via the API or dashboard to validate your integration.

See it in action

Register a webhook and start receiving real-time events in minutes. Every payload is signed and verifiable.

Register a webhook cURL
curl https://api.ferros.xyz/v1/webhooks \
  -H "X-API-Key: cv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/ferros",
    "events": [
      "transaction.created",
      "transaction.completed",
      "transaction.failed",
      "vault.deposit",
      "gas_tank.low"
    ]
  }'
201 Created — Webhook registered, secret returned once
Event payload: transaction.completed JSON
{
  "event": "transaction.completed",
  "timestamp": "2025-01-15T09:32:17Z",
  "data": {
    "id": "tx_8f3k2j1...",
    "status": "COMPLETED",
    "type": "SEND",
    "chain": "ETHEREUM",
    "amount": "1.5",
    "txHash": "0xabc123...",
    "walletId": "wlt_9d2m...",
    "confirmations": 12
  }
}
Signed with X-Ferros-Signature: sha256=...

Works with everything

The Ferros API powers every product in the platform. Explore related capabilities.

Start building with the Ferros API

Get your API key and start integrating in minutes. Full documentation, code examples, and webhook testing included.