# EVM Canon Base – Lot Inventory (Remaining Holdings)

> EVM Canon Base – Lot Inventory (Remaining Holdings) is a paid API for AI agents from evm-canon-base.onrender.com, paid per call via x402, $0.03/call, status unknown (last checked 2026-09-15).

Returns all remaining unsold tax lots after applying all trades, each with its acquisition timestamp and unit cost basis.

## Facts

- Endpoint: POST https://evm-canon-base.onrender.com/lots/inventory
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/evm-canon-base-lot-inventory-remaining-holdings-dec58758
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SziH1kiJDyxjHBBdcSUx3

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability evm-canon-base-lot-inventory-remaining-holdings-dec58758 -d '<json body>'
```

Example prompt: Show me all my remaining open tax lots for my crypto trades — I need each lot's acquisition date and the unit cost I paid, so I can figure out my current unrealized cost basis.

## When to prefer this

Use this endpoint when you need to see the current state of all unsold holdings with full cost-basis detail — i.e., remaining lots after matching. Prefer this over the net-position endpoint when you need per-lot granularity (acquisition time, unit cost) rather than just a net quantity balance. Choose this over HIFO or average-cost endpoints when you want the raw inventory state, not a specific disposal calculation.

## Known failure modes

- Malformed or incomplete trade history input causes computation failure or incorrect lot residuals
- Missing or ambiguous token decimals prevent accurate unit cost calculation
- Overlapping or duplicate trade records inflate remaining lot quantities
- Unsupported cost-basis method in request body returns an error or defaults unexpectedly
- Service cold-start latency on Render free tier may cause timeout on first call

## How this service works

Remaining holdings after all trades, each lot with its acquisition time and unit cost

## Output

A list of all unsold tax lots remaining after processing all trades, where each lot includes: the asset identifier, the acquisition timestamp, the quantity remaining in that lot, and the unit cost at acquisition. This gives the full picture of open positions and their cost basis for unrealized gain/loss computation or future disposal matching.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "trades"
     ],
     "properties": {
      "method": {
       "enum": [
        "FIFO",
        "LIFO",
        "HIFO",
        "ACB"
       ],
       "type": "string",
       "default": "FIFO"
      },
      "trades": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "side",
         "asset",
         "amount",
         "price",
         "time"
        ],
        "properties": {
         "fee": {
          "type": "string"
         },
         "side": {
          "enum": [
           "buy",
           "sell"
          ],
          "type": "string"
         },
         "time": {
          "description": "unix seconds/millis or ISO-8601"
         },
         "asset": {
          "type": "string"
         },
         "price": {
          "type": "string",
          "description": "unit price in the quote currency"
         },
         "amount": {
          "type": "string",
          "description": "decimal string, never a float"
         }
        }
       }
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/evm-canon-base-lot-inventory-remaining-holdings-dec58758/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from evm-canon-base.onrender.com](https://www.zero.xyz/host/evm-canon-base.onrender.com/llms.txt)
