Ferros
Enterprise Security

Enterprise-grade security
at every layer

Configurable policies, multi-level approval workflows, immutable audit logs, and military-grade encryption. Security is not a feature — it is the foundation.

AES-256-GCM
Multi-sig (Safe)
Immutable Audit Logs
Role-based Access

Defense in depth

Multiple layers of security work together to protect your assets, enforce compliance, and provide complete auditability.

Policy Engine

5 configurable policy types to enforce compliance rules across your organization. Define conditions with flexible operators and apply policies to specific wallets, chains, or globally.

Approval — Require N approvals before execution
Spending Limit — Per transaction or time period caps
Whitelist — Only allow known addresses
Blacklist — Block sanctioned addresses
Time Lock — Delay execution for review

Multi-level Approvals

Transaction approval workflows with full status tracking. Threshold-based multi-sig via Safe protocol ensures no single point of failure for high-value operations.

PENDING Awaiting required signatures
APPROVED Threshold met, ready to execute
REJECTED Signer declined the transaction

Audit Logging

Immutable, timestamped logs for every action across the platform. Track who did what, when, and from where. Fire-and-forget architecture ensures zero latency impact on operations.

userId action resource metadata ipAddress

Encryption at Rest

All private keys and master seeds are encrypted with AES-256-GCM. Each encrypted record stores a separate IV and authentication tag. The master key is never stored in the database.

Ciphertext — Encrypted private key data
IV — Unique initialization vector per record
Auth Tag — GCM authentication for tamper detection
Access Control

Role-based access control

Four organization roles give you fine-grained control over what each team member can do. Plus a superadmin role for platform-level administration and cross-organization oversight.

Roles are enforced at the API level. Every request is authenticated, authorized, and logged. There are no shortcuts — even internal tools go through the same permission checks.

Owner
Full control. Manage billing, team members, API keys, and all resources. One per organization.
Admin
Manage wallets, vaults, workflows, and policies. Invite team members. Cannot modify billing.
Member
Standard operations. Create transactions, view wallets, trigger workflows. Cannot manage settings.
Viewer
Read-only access. View dashboards, balances, transaction history, and audit logs. Cannot modify anything.

Superadmin

Platform-level access

Orthogonal to organization roles. The isSuperadmin flag grants cross-organization visibility and platform administration capabilities.

View and manage all organizations
Cross-org transaction monitoring
Platform-wide audit log access
Suspend/unsuspend organizations
JWT + superadminOnly middleware

Enforcement at every layer

1
API middleware validates auth on every request
2
Organization scope isolates tenant data
3
Role check determines operation permissions
4
Audit log records the action for compliance
Self-Custody Flow

Self-custody signing flow

For self-custody wallets, private keys never touch the server. Signing requests are pushed to hardware wallets or the Ferros Signer mobile app, and signatures are submitted back via API.

1

Create Transaction

Platform creates the transaction with status PENDING

2

SigningRequest

Request created and push notification sent to signer device

3

User Reviews

Signer reviews TX details on mobile or hardware wallet

4

Biometric Sign

User authenticates and signs with Secure Enclave / Keystore

5

Submit Signature

Signed payload submitted to /signing-requests/:id/signature

Execute On-Chain

Threshold met. Transaction executed and confirmed

Ferros Signer App (iOS + Android)
Hardware Wallet (Ledger, Trezor)

Policies as code

Define compliance rules programmatically. Create policies with flexible rules using operators like gt, lt, eq, in, and not_in. Apply them globally or scope to specific wallets and chains.

This example creates a spending limit policy that blocks any single transaction above 10 ETH. Policies are evaluated automatically on every transaction before execution.

Create a spending limit policy cURL
curl https://api.ferros.xyz/v1/policies \
  -H "X-API-Key: cv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Max Transaction Limit",
    "type": "SPENDING_LIMIT",
    "enabled": true,
    "rules": [
      {
        "field": "amount",
        "operator": "gt",
        "value": "10",
        "action": "BLOCK",
        "message": "Transaction exceeds 10 ETH limit"
      }
    ]
  }'
201 Created — Policy active, evaluated on all transactions

Security across the platform

Security is built into every Ferros product. Explore how policies and encryption protect your entire infrastructure.

Secure your digital assets today

Enterprise-grade security with zero compromise on developer experience. Start free with full policy and encryption features included.