Introduction

This guide provides an overview of the Omnia platform architecture and the relationships between different entities in the system. Understanding these relationships is crucial for effectively integrating with the API.

Overview

Omnia provides a comprehensive platform that bridges traditional banking with blockchain functionality, enabling banks to offer crypto services to their customers while maintaining regulatory compliance and operational control.

Core Architecture

The Omnia platform is built around a hierarchical structure that mirrors traditional banking relationships while extending them into the blockchain space.

Entity Relationships

graph TD
    Bank[🏦 Bank] -->|has many| Customer[πŸ‘€ Customer]
    Customer -->|has multiple| BankAccount[πŸ’³ Bank Account<br/>checking, savings]
    BankAccount -->|can have 0+| BlockchainAccount[⛓️ Blockchain Account]
    BankAccount -->|can have 0-1| TradingAccount[πŸ“ˆ Trading Account]
    BlockchainAccount -->|has multiple| DepositAddress[πŸ“ Deposit Address<br/>one per network]
    BlockchainAccount -->|interfaces with multiple| Counterparty[Counterparty<br/>Omnia verified]

    %% Styling
    classDef bank fill:#e1f5fe,color:black
    classDef customer fill:#f3e5f5,color:black
    classDef account fill:#e8f5e8,color:black
    classDef blockchain fill:#fff3e0,color:black
    classDef trading fill:#fce4ec,color:black
    classDef address fill:#f1f8e9,color:black
    classDef counterparty fill:white,color:black

    class Bank bank
    class Customer customer
    class BankAccount account
    class BlockchainAccount blockchain
    class TradingAccount trading
    class DepositAddress address
    class Counterparty counterparty

Entity Descriptions

Bank

The top-level entity representing the financial institution using Omnia's services. Each bank has:

  • Unique identification and configuration
  • Regulatory compliance settings
  • Operational parameters and limits
  • Customer management capabilities
  • Data isolation

Customer

Individual or business entities that have accounts with the bank. Customers represent:

  • KYC-verified individuals or businesses
  • The account holders in the traditional banking sense
  • The entities that own and control all associated accounts

Omnia does not duplicate the bank's customer in it's system. Instead, these customers are understood
to be an implicit construct within the bank's domain.

Bank Account

Traditional bank accounts that serve as the foundation for blockchain functionality:

  • Types: Checking, Savings
  • Purpose: Hold fiat deposits and serve as the backing for blockchain operations
  • Relationship: Each customer can have multiple bank accounts
  • Integration: Links to blockchain functionality through Blockchain Accounts

Omnia does not duplicate these bank accounts. These exist solely within the bank's domain.

Blockchain Account

The bridge between traditional banking and blockchain functionality:

  • Purpose: Enables crypto deposits, withdrawals, and tokenized transfers
  • Capabilities:
    • Receive crypto deposits from external wallets
    • Send crypto withdrawals to verified counterparties
    • Transfer tokenized deposits between bank customers
    • Execute cross-border payments using stablecoins
  • Relationship: Each bank account can have one or more blockchain accounts. Omnia keeps track of an identifier for the bank account in order to submit ledger transactions, but otherwise the ownership model is maintained by the bank.

Trading Account

Segregated accounts for crypto trading activities:

  • Purpose: Enable buying, selling, and holding crypto assets
  • Isolation: Funds are isolated from main accounts
  • Limitation: Each bank account can have at most one trading account
  • Operations:
    • Fund with stablecoins or deposit tokens
    • Execute trades with guaranteed pricing
    • Hold crypto positions separate from main account
    • Withdraw proceeds back to main account

Deposit Address

Blockchain addresses for receiving different cryptocurrencies:

  • Purpose: Allow customers to receive crypto deposits
  • Network-Specific: Each address is specific to a blockchain network (Solana, Ethereum, etc.)
  • Generation: Automatically created when a blockchain account is established
  • Relationship: Each blockchain account has multiple deposit addresses

Key Concepts

Account Hierarchy

Example:

Bank
β”œβ”€β”€ Customer 1 (maintained by the bank)
β”‚   β”œβ”€β”€ Checking Account (maintained by the bank)
β”‚   β”‚   β”œβ”€β”€ Blockchain Account A (Solana focus)
β”‚   β”‚   β”‚   β”œβ”€β”€ USDC Deposit Address
β”‚   β”‚   β”‚   β”œβ”€β”€ SOL Deposit Address
β”‚   β”‚   β”‚   └── Custom Token Deposit Address
β”‚   β”‚   β”œβ”€β”€ Blockchain Account B
β”‚   β”‚   β”‚   β”œβ”€β”€ USDC Deposit Address
β”‚   β”‚   β”‚   └── USDT Deposit Address
β”‚   β”‚   └── Trading Account
β”‚   └── Savings Account (maintained by the bank)
β”‚       └── Blockchain Account C
β”‚           └── USDC Deposit Address
└── Customer 2 (maintained by the bank)
    └── Business Checking Account (maintained by the bank)
        β”œβ”€β”€ Blockchain Account D (High-volume)
        └── Trading Account

Transaction Flow

  1. Deposits: External crypto β†’ Deposit Address β†’ Blockchain Account β†’ Bank Account
  2. Withdrawals: Bank Account β†’ Blockchain Account β†’ External wallet
  3. Trading: Bank Account β†’ Trading Account β†’ Crypto holdings
  4. Transfers: Blockchain Account β†’ Tokenized deposits β†’ Other customer's Blockchain Account

Compliance and Limits

  • Transaction Limits: Set per blockchain account based on customer classification
  • Counterparty Verification: External wallets must be verified before withdrawal
  • Regulatory Reporting: All transactions are monitored and reported as required
  • Segregation: Trading funds are kept separate from main account balances

Getting Started

To begin integrating with the Omnia API:

  1. Customer Onboarding: Ensure customers are properly KYC-verified in your bank's systems.
  2. Account Mapping: Identify which bank accounts should have blockchain functionality.
  3. Blockchain Account Creation: Create blockchain accounts for enabled bank accounts. This operation can be done in the Omnia dashboard, or through the API.
  4. Address Generation: Deposit addresses are automatically generated for supported networks.
  5. Trading Setup (Optional): Create trading accounts for customers who need crypto trading. This operation can be done in the Omnia dashboard, or through the API.
  6. Limit Configuration: Set appropriate transaction limits based on customer risk profiles. This operation can be done in the Omnia dashboard, or through the API.

Next Steps

Read More

Implement Your First Feature

Support

For technical questions about the API structure or implementation details, refer to the complete OpenAPI specification or contact your integration team.


Did this page help you?