Overview
The integration leverages Smart Wallets to provide segregated user accounts while keeping your Omnibus wallet isolated from strategy bytecode execution. This architecture ensures maximum security by preventing your main operational wallet from signing potentially untrusted transactions.Prerequisites
Before starting the integration, ensure you have:
- A Fireblocks account with API access
- Understanding of Fireblocks Transaction Authorization Policy (TAP)
- Familiarity with the Architecture Overview
1. Fireblocks Setup
To safely interact with strategy bytecode while isolating your Omnibus wallet, Fireblocks must be configured with dedicated roles and policies.Creating Roles
To ensure clean separation of responsibilities and secure execution:| Role | Description |
|---|---|
| Initiator | The API user or service responsible for submitting strategy-related transactions to Fireblocks. This user will call Fireblocks when signing strategy bytecode. |
| Earn Owner | A dedicated vault that acts as the Smart Wallet Owner. This address serves as the signer for smart wallet transactions, providing security segmentation from your main operational wallet. |
Creating Policies
Two policies must be configured in Fireblocks to ensure automated, safe signing of transactions:Contract Call Policy
| Setting | Value |
|---|---|
| Initiator | The API user created for strategy operations |
| Source | Earn Owner vault |
| Signer | Co-signer (for automatic signing) |
Typed Message Policy
| Setting | Value |
|---|---|
| Initiator | The API user created for strategy operations |
| Source | Earn Owner vault |
| Signer | Co-signer (for automatic signing) |
2. Smart Wallet Creation
Each user receives their own segregated smart wallet. Create one by calling:| Parameter | Type | Description |
|---|---|---|
owner | string | Who will be the owner of the smart wallet |
chainId | number | The blockchain network ID |
3. Store the Smart Wallet Mapping
You must store the mapping between your internal user IDs and their smart wallet addresses:- Display user balances and yield
- Track user performance
- Execute operations on behalf of users
4. Deposit Flow
When a user wants to deposit into a strategy (e.g., 100 USDC):Transfer Funds to Smart Wallet
Transfer the deposit amount from your Omnibus wallet to the user’s
smartWalletAddress.Request Strategy Bytecode
5. View User Positions and Yield
To fetch a user’s position, balance, or yield:6. Withdrawal Flow
Withdrawals follow the reverse flow:Trade-offs
Additional Transfers
Requires two separate transfers for deposits and withdrawals: Transfer IN (Omnibus to Smart Wallet) and Transfer OUT (Smart Wallet to destination)
Omnibus Isolation
Your Omnibus signer is never exposed to potentially malicious bytecode, preventing scenarios similar to known custody exploits
User Segregation
Each user operates through a fully segregated smart wallet
Auditability
Clean audit trail and easier accounting per user. Aggregated deposit analytics available via the
/analytics endpoint