返回 Skill 列表
extension
分类: 其它需要 API Key

DAX Ledger Skills

使用 DAXLedger API 完成认证、列出投资组合、获取投资组合 KPI、列出发现项、获取持仓快照以及列表/筛选交易

person作者: pedromxavier14hubclawhub

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=<BASE64> | 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=<BASE64>&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) < 1e12 ? Number(epoch) * 1000 : Number(epoch)).toISOString()


Pagination

page starts at 1

pageSize default = 20

Continue requesting pages while:

items.length < total


References

references/apis.md