Skip to content

OTC lockup listing event history

GET /api/otc/lockup/listing/history/v1

Immutable event log for lockup listings: created, updated, cancelled, purchased, expired. Each event records the executed price, escrow account, lockup duration, unlock block, and extrinsic context. For current lockup listing state use /api/otc/lockup/listing/v1.

NameInTypeRequiredDescription
listing_idquerystringFilter to events for one specific lockup listing.
event_typequeryEvent type: created, updated, cancelled, purchased, expired.
sellerquerystringFilter by seller coldkey.
buyerquerystringFilter to events involving a specific buyer (e.g. purchased).
hotkeyquerystringFilter by hotkey.
netuidqueryintegerSubnet id.
block_startqueryintegerEarliest block (inclusive).
block_endqueryintegerLatest block (inclusive).
timestamp_startqueryintegerEarliest timestamp (seconds, inclusive).
timestamp_endqueryintegerLatest timestamp (seconds, inclusive).
pagequeryinteger1-based page number.
limitqueryintegerPage size (max 200).
orderquerySort order.

200 — Lockup listing history retrieved successfully

Section titled “200 — Lockup listing history retrieved successfully”

Media: application/json

Schema
{
"type": "object",
"required": [
"pagination",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"extrinsic_id",
"listing_id",
"event_type",
"seller",
"netuid",
"block_number",
"timestamp"
],
"properties": {
"alpha_amount": {
"type": "string",
"nullable": true
},
"amount": {
"type": "string",
"nullable": true
},
"amount_returned": {
"type": "string",
"nullable": true
},
"block_number": {
"type": "integer",
"format": "int32"
},
"buyer": {
"allOf": [
{
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
}
],
"nullable": true
},
"escrow_account": {
"type": "string",
"nullable": true
},
"event_type": {
"type": "string"
},
"executed_price": {
"type": "string",
"nullable": true
},
"extrinsic_id": {
"type": "string"
},
"fee": {
"type": "string",
"nullable": true
},
"force_cancelled": {
"type": "boolean",
"nullable": true
},
"hotkey": {
"allOf": [
{
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
}
],
"nullable": true
},
"id": {
"type": "string"
},
"initiated_by": {
"type": "string",
"nullable": true
},
"listing_id": {
"type": "string"
},
"lockup_duration": {
"type": "integer",
"format": "int32",
"nullable": true
},
"netuid": {
"type": "integer",
"format": "int32"
},
"price_offset_bps": {
"type": "integer",
"format": "int32",
"nullable": true
},
"purchase_id": {
"type": "string",
"nullable": true
},
"seller": {
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
},
"tao_amount": {
"type": "string",
"nullable": true
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"unlock_block": {
"type": "integer",
"format": "int32",
"nullable": true
}
}
}
},
"pagination": {
"type": "object",
"required": [
"current_page",
"per_page",
"total_items",
"total_pages"
],
"properties": {
"current_page": {
"type": "integer",
"format": "int32"
},
"next_page": {
"type": "integer",
"format": "int32",
"nullable": true
},
"per_page": {
"type": "integer",
"format": "int32"
},
"prev_page": {
"type": "integer",
"format": "int32",
"nullable": true
},
"total_items": {
"type": "integer",
"format": "int32"
},
"total_pages": {
"type": "integer",
"format": "int32"
}
}
}
}
}

Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).

All Taostats API requests require an Authorization header containing your API key. See Getting Started.