Get full tax report in single request (optimized)
const url = 'https://api.qeychain.xyz/api/calculate/full-report/example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.qeychain.xyz/api/calculate/full-report/exampleReturns tax summary, all lots, and wash sales in a SINGLE API call.
This is significantly faster than calling /tax-summary, /lots, and /wash-sales
separately because:
1. Transactions are fetched once (not 3x)
2. Cost basis engine runs once (not 3x)
3. Price enrichment happens once (not 3x)
Use this endpoint for the frontend dashboard for best performance.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”All wallet addresses owned by the user (for internal transfer detection)
Responses
Section titled “Responses”Successful Response
Unified response containing tax summary, lots, and wash sales.
This endpoint processes the cost basis engine ONCE and returns all data, avoiding redundant processing when fetching multiple endpoints.
object
Breakdown of income by type (airdrops, staking rewards, etc.).
object
Total airdrop income at FMV
Total staking reward income at FMV
Total mining reward income at FMV
Total interest income at FMV
Other income at FMV
Total income received (sum of all types)
Tax lot with cost basis information.
Enhanced with detailed origin tracking for full money trail:
- WHERE it came from (origin_address, origin_chain)
- HOW it was acquired (origin_type, origin_symbol)
object
Unique lot identifier (e.g., ‘ETH-ARB-001’)
Token symbol
Blockchain network
Original quantity acquired
Remaining quantity after disposals
Cost per unit in USD
Total cost basis in USD
Remaining cost basis
Acquisition type (purchase, swap_in, etc.)
Source of price data
Lot status: OPEN, PARTIAL, or CLOSED
Whether this lot has unknown cost basis
Whether user should provide cost basis manually
Whether user has provided manual cost basis
List of consumption events
Individual lot consumption event.
Enhanced with destination tracking for full money trail:
- WHERE the lot went (destination_type, destination_address)
- WHAT it became (destination_symbol, destination_lot_id)
object
Lots this lot came from (e.g., SCR lots that became this ETH lot)
Reference to a lot in the lineage chain (money trail).
object
Unique lineage key (chain:symbol:lot_id)
Lot identifier
Token symbol
Blockchain network
Quantity from/to this lot
Cost basis contribution
Lots this lot became (e.g., ETH lot that this SCR lot was swapped for)
Reference to a lot in the lineage chain (money trail).
object
Unique lineage key (chain:symbol:lot_id)
Lot identifier
Token symbol
Blockchain network
Quantity from/to this lot
Cost basis contribution
Gas fee (USD) included in cost basis (IRS allows adding gas to acquisition cost)
Wash sale event details.
object
Wash sale event ID
Token symbol
Lot ID that was sold at a loss
Date of the loss sale
Transaction hash of sale
Lot ID acquired within wash sale window
Date of the replacement acquisition
Transaction hash of acquisition
Amount of loss disallowed
Quantity matched for wash sale
Days between sale and acquisition
Example
{ "address": "0xce8d2983e85a0b0435bf3d157f7d3a3888ca7eeb", "long_term_gains": "0.00", "long_term_losses": "0.00", "lots": [], "net_long_term": "0.00", "net_short_term": "1500.00", "processing_time_ms": 1234, "short_term_gains": "2000.00", "short_term_losses": "500.00", "total_realized_gl": "1500.00", "wash_sales": []}Bad Request
Not Found
Validation Error
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ]}Internal Server Error
