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
- Deposits: External crypto β Deposit Address β Blockchain Account β Bank Account
- Withdrawals: Bank Account β Blockchain Account β External wallet
- Trading: Bank Account β Trading Account β Crypto holdings
- 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:
- Customer Onboarding: Ensure customers are properly KYC-verified in your bank's systems.
- Account Mapping: Identify which bank accounts should have blockchain functionality.
- Blockchain Account Creation: Create blockchain accounts for enabled bank accounts. This operation can be done in the Omnia dashboard, or through the API.
- Address Generation: Deposit addresses are automatically generated for supported networks.
- 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.
- 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
- Creating a Blockchain Account - Set up blockchain functionality for a bank account
- Trading Account and Execution - Enable crypto trading capabilities
Support
For technical questions about the API structure or implementation details, refer to the complete OpenAPI specification or contact your integration team.
Updated 10 months ago
