Core Concepts
Core Concepts
This document explains the fundamental entities and relationships in the PRIME platform. Understanding these concepts is essential for working with the API effectively.
Trading Venues
PRIME supports two trading modes:
Sub-accounts are configured for a specific venue, determining which trading mode is available.
Entity Hierarchy
User
A User is an authentication identity that operates within a Client Account.
Key Properties
Permissions
User permissions are controlled through Actions applied to Domains. See the Permission Model section for details.
Roles
Users have role-based access control:
Front Office Roles:
ROLE_FO_CA_OWNER- Client Account owner (full access)ROLE_FO_TRADER- Trading permissions onlyROLE_FO_ISSUER- Issuer-specific operations
Client Account
A Client Account represents a legal entity (individual or company) that has a relationship with the platform. This is the compliance and regulatory boundary.
Key Properties
Verification Status
Client Accounts must be verified before trading is enabled:
Trading Eligibility
A Client Account can trade only when:
status=ACTIVEverificationStatus=VERIFIED
Sub-Account (Portfolio)
A Sub-Account (also called a Portfolio) is a segregated trading account under a Client Account. It enables clients to partition their holdings and trading activity.
Why Portfolios?
- Segregation: Separate balances and trading history
- Access Control: Different users can access different portfolios
- Pair Restrictions: Limit which trading pairs are available
- Venue Separation: Exchange vs OTC trading
Key Properties
Trading Eligibility
A Sub-Account can trade only when:
- Parent Client Account can trade (verified and active)
Instruments
An Instrument represents any tradable asset on the platform.
Instrument Types
Key Properties
Usage Pattern
Fetch instruments first to obtain UUIDs needed for other operations:
Pairs
A Pair represents a trading relationship between two instruments (base/quote).
Structure
Key Properties
Trading Constraints
When placing orders, respect the pair’s constraints:
- Quantity: Must be between
minOrderQuantityandmaxOrderQuantity - Precision: Quantity must respect
quantityDecimalPointsandquantityTicks - Price: Must respect
priceDecimalPointsandpriceTicks - Status: Pair must be
OPENto trade
Usage Pattern
Fetch pairs to understand available markets and get IDs for orders:
ID References Across APIs
Most API operations require entity IDs obtained from previous queries:
Typical Flow
- Authenticate → Receive JWT token
- Get Sub-Accounts → Obtain sub-account
idfor your portfolio - Get Instruments → Obtain instrument
idfor assets you need - Get Pairs → Obtain pair
idfor trading pairs - Execute Operations → Use collected IDs in trading/payment endpoints
Entity Lifecycle
Creating a Trading Setup
Permission Checks
Every API request validates:
- Authentication: Valid JWT token with user identity
- User Status: User must be
ACTIVE - Client Account: Must be
ACTIVEandVERIFIED(for trading) - Sub-Account Access: User must have access to the sub-account
- Operation Permission: User must have required permission (trade, withdraw, etc.)
- Resource Constraints: Pair restrictions, trading limits, etc.
Permission Model
Permissions are controlled through a combination of Actions and Domains.
Actions
Actions define what operations a user can perform:
Domains
Domains define the scope where permissions apply. Each domain is scoped to a client account and optionally a sub-account:
How Permissions Work
Permissions are evaluated against a domain path that includes:
- User type (
fofor Front Office,bofor Back Office) - Domain type (e.g.,
private/subaccount) - Client Account ID
- Sub-Account ID (for sub-account scoped domains)
For example, to place a trade, a user needs:
tradeaction on theprivate/subaccountdomain for that sub-accounttradeaction on theprivate/pairdomain for the trading pairtradeaction on theprivate/instrumentdomain for both base and quote instruments