DAX Ledger Skills
/install daxledger-api
DAX Ledger API
Base URL
https://app.daxledger.io
Environment Variables
| Variable | Description |
|---|---|
| DAXLEDGER_API_KEY | API key used to authenticate |
| DAXLEDGER_API_SECRET | API secret used to authenticate |
TL;DR — Best Practice
To get the aggregated portfolio valuation in a fast and canonical way, use:
- GET /api/portfolio/{portfolioId}/position_snapshot/graph?span={n}
Example: span=7 for 7 days.
To get historical data for a specific token when asset-level detail is needed, use: - GET /api/portfolio/{portfolioId}/position_snapshot/graph/{ticker}?span={n}
- Practical rule: by default, automations/agents should use the aggregated endpoint. Only use per-ticker aggregation when it is explicitly requested (force_by_ticker=true) or when granular asset-level analysis is required.
Authentication
POST /api/auth/external_api
Body:
{ "APIKey": "{{DAXLEDGER_API_KEY}}", "APISecret": "{{DAXLEDGER_API_SECRET}}" }
Response:
{ "token": "your_access_token_here" }
Header for authenticated calls:
Authorization: Bearer {{token}}
Pick Your Endpoint
| You need | Endpoint | Ref |
|---|---|---|
| Authenticate | POST /api/auth/external_api | references/apis.md |
| List portfolios | GET /api/portfolios | references/apis.md |
| Get KPIs | GET /api/portfolio/{portfolioId}/kpis/portfolio | references/apis.md |
| Get findings (problems in portfolio) | GET /api/portfolio/{portfolioId}/findings?page=1&pageSize=20 | references/apis.md |
| Get finding by rule id | GET /api/portfolio/{portfolioId}/finding/{ruleId} | references/apis.md |
| Get position snapshot (balances and values) | GET /api/portfolio/{portfolioId}/position_snapshot?page=1&pageSize=20 | references/apis.md |
| Get portfolio position (variation) graph | GET /api/portfolio/{portfolioId}/position_snapshot/graph?span=30 | references/apis.md |
| Get token position graph (variation) | GET /api/portfolio/{portfolioId}/position_snapshot/graph/{ticker}?span=30 | references/apis.md |
| Get DeFi positions | GET /api/portfolio/{portfolioId}/positions_report/defi | references/apis.md |
| Get capital gains report | GET /api/portfolio/{portfolioId}/capital_gains_report?page=1&pageSize=20 | references/apis.md |
| Get capital gains available filters | GET /api/portfolio/{portfolioId}/capital_gains_report/filters | references/apis.md |
| Get sanity check report | GET /api/portfolio/{portfolioId}/sanity_check_report?page=1&pageSize=20 | references/apis.md |
| Get calculation summary report | GET /api/portfolio/{portfolioId}/calculation_summary_report?page=1&pageSize=20 | references/apis.md |
| Get fiscal report | GET /api/portfolio/{portfolioId}/fiscal_report?page=1&pageSize=20 | references/apis.md |
| List transactions | GET /api/portfolio/{portfolioId}/transactions?page=1&pageSize=20 | references/apis.md |
| Filter transactions | GET /api/portfolio/{portfolioId}/transactions?filter=\x3CBASE64> | references/apis.md |
| Get compliance report | GET /api/portfolio/{portfolioId}/compliance?page=1&pageSize=20 | references/apis.md |
Transactions
Endpoint
GET /api/portfolio/{portfolioId}/transactions
Query params
page
pageSize
filter
Findings
List Findings
Endpoint
GET /api/portfolio/{portfolioId}/findings
Query params
page
pageSize
Use this endpoint when the user asks for problems or findings in a portfolio.
Finding By Rule Id
Endpoint
GET /api/portfolio/{portfolioId}/finding/{ruleId}
Use this endpoint when the user asks for findings tied to a specific rule/identifier returned in findings.
Position Snapshot
Positions Snapshot (balances and values)
Endpoint
GET /api/portfolio/{portfolioId}/position_snapshot
Query params
page
pageSize
filter
sort
Use this endpoint when the user asks about token balance or token value.
Position Snapshot Graph (Overall)
Endpoint
GET /api/portfolio/{portfolioId}/position_snapshot/graph/
Query params
span (7, 30, 365, -1)
Use this endpoint when the user asks about variation in balance over time or on a specific date range.
Position Snapshot Graph By Ticker
Endpoint
GET /api/portfolio/{portfolioId}/position_snapshot/graph/{ticker}
Query params
span (7, 30, 365, -1)
Use this endpoint when the user asks about a specific token holding over time or on a specific date range.
DeFi Positions
Endpoint
GET /api/portfolio/{portfolioId}/positions_report/defi
Use this endpoint when the user asks to retrieve all DeFi positions.
Compliance
Portfolio Compliance
Endpoint
GET /api/portfolio/{portfolioId}/compliance
Query params
page
pageSize
filter
Use this endpoint when the user asks about:
- classified addresses
- unclassified addresses
- compliance issues
- compliance status of addresses
- blockchain address compliance
Reports
Capital Gains Report
Endpoint
GET /api/portfolio/{portfolioId}/capital_gains_report
Available filters endpoint
GET /api/portfolio/{portfolioId}/capital_gains_report/filters
Query params
page
pageSize
filter
sort
Use this endpoint when the user asks for gains/losses by asset and realized/unrealized values.
Capital gains filters:
- digitalAssetTicker (operator: contains_in)
- report_year (operator: =)
- portfolioConnection (operator: =)
If isSeparateSetting=true in capital gains response, run the endpoint with several filters using the values from /capital_gains_report/filters to retrieve separate results.
Sanity Check Report
Endpoint
GET /api/portfolio/{portfolioId}/sanity_check_report
Query params
page
pageSize
Use this endpoint when the user asks for balance mismatches between calculated and reported balances.
Calculation Summary Report
Endpoint
GET /api/portfolio/{portfolioId}/calculation_summary_report
Query params
page
pageSize
filter
sort
Use this endpoint when the user asks for high-level calculated totals and summary metrics.
Fiscal Report
Endpoint
GET /api/portfolio/{portfolioId}/fiscal_report
Query params
page
pageSize
filter
sort
Use this endpoint when the user asks for fiscal/tax line items with acquisition, sale, and holding details.
Transaction Filters
Filters must be encoded with Base64 before sending.
Transaction Hash
Operator: contains
{"transactionHash":{"operator":"contains","value":"123456789"}}
Transaction Date
Operator: between
{"transactionDate":{"operator":"between","value":{"startDate":"2026-03-01","endDate":"2026-03-02"}}}
Transaction Type
Operator: contains_in
{"transactionType":{"operator":"contains_in","value":["computed-reward"]}}
Available transaction types:
- airdrop
- bonus
- computed-deposit
- computed-reward
- deposit
- other
- reward
- staking
- trade
- unknown
- unstaking
- withdrawal
Combining Multiple Filters
Multiple filters can be applied in the same JSON object.
Example combining:
- transaction hash
- transaction type
- transaction date
Example JSON:
{ "transactionHash": { "operator": "contains", "value": "123456" }, "transactionType": { "operator": "contains_in", "value": ["trade","deposit"] }, "transactionDate": { "operator": "between", "value": { "startDate": "2026-03-01", "endDate": "2026-03-31" } } }
Encode this JSON to Base64 and pass it as:
GET /api/portfolio/{portfolioId}/transactions?filter=\x3CBASE64>&page=1&pageSize=20
Encoding Filters
Browser
btoa(JSON.stringify(filter))
Node
Buffer.from(JSON.stringify(filter)).toString("base64")
Epoch Fields
If an API field is an epoch timestamp, convert it to ISO date before returning it to the user.
Rule:
- 10 digits -> seconds
- 13 digits -> milliseconds
Example (Node):
new Date(Number(epoch) \x3C 1e12 ? Number(epoch) * 1000 : Number(epoch)).toISOString()
Pagination
page starts at 1
pageSize default = 20
Continue requesting pages while:
items.length \x3C total
References
references/apis.md
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install daxledger-api - After installation, invoke the skill by name or use
/daxledger-api - Provide required inputs per the skill's parameter spec and get structured output
What is DAX Ledger Skills?
Use the DAX Ledger API to authenticate, list portfolios, retrieve portfolio KPIs, list findings, retrieve position snapshots, and list/filter transactions wi... It is an AI Agent Skill for Claude Code / OpenClaw, with 89 downloads so far.
How do I install DAX Ledger Skills?
Run "/install daxledger-api" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is DAX Ledger Skills free?
Yes, DAX Ledger Skills is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does DAX Ledger Skills support?
DAX Ledger Skills is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created DAX Ledger Skills?
It is built and maintained by pedromxavier14 (@pedromxavier14); the current version is v1.0.0.