Portfolio Intelligence
PremiumTrack your Stellar portfolio with multi-account aggregation, P&L tracking, yield monitoring, and risk analysis.
Introduction
Portfolio Intelligence solves the problem of fragmented and opaque Stellar portfolios. Whether you're a power user with multiple accounts, a DAO managing treasury, or a fund tracking positions, Portfolio Intelligence gives you complete visibility into your holdings.
Multi-Account
Aggregate multiple Stellar accounts into one view
P&L Tracking
Track profit and loss with FIFO cost basis
Yield Tracking
Monitor DeFi yields and staking rewards
Target Users
- Power Users: Track multiple personal accounts in one place
- DAOs: Manage treasury with team access and snapshots
- Funds: Professional portfolio tracking with P&L reports
- DeFi Participants: Monitor Soroban contract positions and yields
Dashboard
The Portfolio dashboard provides a comprehensive overview of your holdings across all linked accounts.
Key Metrics
Dashboard Sections
Portfolio Summary
Total value, P&L, account count, and last sync time with refresh button
Top Positions
Your largest holdings by value with asset code, balance, and P&L percentage
Asset Allocation
Visual breakdown of holdings by asset with percentage allocation
Accounts List
All linked accounts with labels, balances, and position counts
Subscription Tiers
Portfolio Intelligence offers three tiers to match your needs. Start free and upgrade as you grow.
| Feature | FREE | PRO ($10/mo) | DAO ($50/mo) |
|---|---|---|---|
| Portfolios | 1 | 5 | 100 |
| Accounts per Portfolio | 1 | 10 | Unlimited |
| P&L Tracking | - | Yes | Yes |
| Yield Tracking | - | Yes | Yes |
| Contract Positions | - | Yes | Yes |
| Snapshot Retention | 7 days | 90 days | 365 days |
| Team Access | - | - | Yes |
| API Access | - | Yes | Yes |
| Export (CSV/JSON) | - | Yes | Yes |
Portfolios
A portfolio is a container for grouping Stellar accounts. You might create separate portfolios for personal holdings, trading, or different organizations.
Portfolio Properties
| Field | Description |
|---|---|
| name | Display name for the portfolio |
| description | Optional description or notes |
| totalValueUsd | Aggregated USD value of all accounts |
| totalPnlUsd | Total profit/loss in USD |
| lastSyncedAt | Last data sync timestamp |
Account Management
Link Stellar accounts to your portfolio by providing the account ID (public key). Each account is validated against the Stellar network before being added.
Account Properties
| Field | Description |
|---|---|
| accountId | Stellar public key (starts with G) |
| label | Optional friendly name (e.g., "Trading", "Savings") |
| xlmBalance | Native XLM balance |
| totalValueUsd | Total value including all assets |
| positionCount | Number of asset positions |
Read-Only Access
Portfolio Intelligence only reads public blockchain data. Your private keys are never required or stored. You maintain full custody of your assets.
Asset Positions
Asset positions represent your holdings in each asset. Positions are aggregated across all accounts in a portfolio, giving you a unified view of your total exposure.
Position Data
P&L TrackingPRO+
Track profit and loss across your portfolio with automatic trade import and FIFO cost basis calculation.
P&L Metrics
Unrealized P&L
Profit or loss on positions you still hold, calculated as current value minus cost basis.
Realized P&L
Actual profit or loss from completed trades, using FIFO to match buy and sell orders.
P&L by Time Period
| Period | Description |
|---|---|
| 24h | Change in last 24 hours |
| 7d | Change in last 7 days |
| 30d | Change in last 30 days |
| All Time | Total P&L since tracking began |
Trustline Risk
Every non-XLM asset on Stellar requires a trustline to an issuer. Portfolio Intelligence assesses the risk of each trustline based on issuer flags and behavior.
Risk Factors
Issuer can freeze or revoke your assets at any time. Common for regulated securities.
Issuer can claw back assets from your account without permission.
Issuer can revoke authorization, freezing the asset in your account.
Issuer cannot change asset flags. This is the safest configuration.
Risk Score
Each trustline receives a risk score from 0-100 based on weighted factors:
Risk Score = ( authRequired * 25 + authRevocable * 20 + clawbackEnabled * 30 + !authImmutable * 15 + lowHolderCount * 10 )
Contract PositionsPRO+
Track your positions in Soroban smart contracts, including DeFi protocols, liquidity pools, and staking contracts.
Supported Position Types
STAKE
Tokens staked in validator or protocol staking contracts.
LP
Liquidity provider positions in AMM pools.
LEND
Assets supplied to lending protocols.
BORROW
Assets borrowed from lending protocols (liability).
Yield TrackingPRO+
Monitor yield from various sources including staking rewards, AMM fees, and lending interest.
Yield Sources
| Type | Description |
|---|---|
| STAKING | Validator staking rewards |
| AMM_FEES | Trading fees from liquidity provision |
| LENDING | Interest from lending protocols |
| AIRDROP | Token airdrops and distributions |
| OTHER | Other yield sources |
Yield Metrics
Performance Snapshots
Portfolio Intelligence automatically captures daily snapshots of your portfolio value, enabling historical performance analysis.
Snapshot Data
Portfolio value at snapshot time
Total profit/loss at that point
Individual asset values and allocations
Retention by Tier
| Tier | Retention |
|---|---|
| FREE | 7 days |
| PRO | 90 days |
| DAO | 365 days |
How-to: Create a Portfolio
- 1
Navigate to Portfolio
Click "Portfolio" in the main navigation
- 2
Click "Create Portfolio"
Opens the portfolio creation modal
- 3
Enter Portfolio Details
Provide a name and optional description
- 4
Submit
Your portfolio is created and ready for accounts
How-to: Add an Account
- 1
Open Your Portfolio
Select the portfolio you want to add an account to
- 2
Click "Add Account"
Opens the account addition modal
- 3
Enter Account ID
Paste the Stellar public key (starts with G)
- 4
Add Label (Optional)
Give it a friendly name like "Trading" or "Savings"
- 5
Submit
Account is validated and added to your portfolio
How-to: Sync Portfolio Data
Portfolio data is synced automatically, but you can trigger a manual sync to get the latest balances.
- 1
Open Your Portfolio Dashboard
Navigate to the portfolio you want to sync
- 2
Click the Sync Button
Located in the summary section next to "Last synced"
- 3
Wait for Sync
Data is fetched from Stellar Horizon for all accounts
Cost Basis (FIFO)
Portfolio Intelligence uses First-In-First-Out (FIFO) accounting to calculate cost basis and P&L. This is the most common method for tax reporting.
How FIFO Works
Example: You buy XLM at different prices Buy 1: 1,000 XLM @ $0.10 = $100 cost basis Buy 2: 500 XLM @ $0.12 = $60 cost basis Buy 3: 200 XLM @ $0.15 = $30 cost basis Total: 1,700 XLM, $190 cost basis When you sell 1,200 XLM: - First 1,000 XLM from Buy 1 ($100 cost) - Next 200 XLM from Buy 2 ($24 cost, 200/500 * $60) - Total cost basis for sale: $124 Remaining: 500 XLM - 300 XLM from Buy 2 ($36 cost) - 200 XLM from Buy 3 ($30 cost) - Remaining cost basis: $66
Risk Scoring
Each trustline is assigned a risk score from 0-100 based on multiple factors.
Risk Levels
| Score | Level | Description |
|---|---|---|
| 0-25 | LOW | Minimal issuer control, safe |
| 26-50 | MEDIUM | Some issuer control, moderate risk |
| 51-75 | HIGH | Significant issuer control |
| 76-100 | CRITICAL | Full issuer control, freeze/clawback enabled |
API Reference
Access Portfolio Intelligence programmatically via the REST API.
Portfolios
/api/portfolio- List all portfolios/api/portfolio- Create portfolio/api/portfolio/{id}- Get portfolio details/api/portfolio/{id}- Update portfolio/api/portfolio/{id}- Delete portfolioAccounts
/api/portfolio/{id}/accounts- List accounts/api/portfolio/{id}/accounts- Add accountSync
/api/portfolio/{id}/sync- Sync portfolio data from HorizonExample: Create Portfolio
curl -X POST "https://lumenquery.io/api/portfolio" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"name": "My Trading Portfolio",
"description": "Active trading accounts"
}'Example: Add Account
curl -X POST "https://lumenquery.io/api/portfolio/{id}/accounts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"accountId": "GABC...XYZ",
"label": "Main Trading"
}'Need Help?
Have questions about Portfolio Intelligence? We're here to help.