solana.lending.liquidations table contains Solana lending liquidation events. This table tracks liquidator-repays-debt-and-seizes-collateral activity across supported lending protocols on Solana (Kamino, MarginFi, Jupiter Lend, and Save).
Use this table to analyze liquidation activity, track bad debt events, and understand borrower risk across lending protocols.
Table Details
| Property | Value |
|---|---|
| Table Name | solana.lending.liquidations |
| Table Status | Production-Ready |
| Unique Key | block_timestamp, unique_id |
| Clustering Key(s) | block_timestamp::date |
Table Columns
| Column Name | Data Type | Description |
|---|---|---|
| project | VARCHAR(16777216) | Business name of the protocol being used (e.g. kamino, marginfi, jupiter). |
| protocol | VARCHAR(16777216) | Specific version or variant of the protocol (e.g. klend, marginfi, juplend). |
| lending_event | VARCHAR(16777216) | Category of lending event. One of: deposits, withdrawals, borrows, repayments, liquidations. |
| event_name | VARCHAR(16777216) | Name of the decoded instruction or event that produced this record (e.g. liquidate_obligation_and_redeem_reserve_collateral, lending_account_liquidate). |
| program_id | VARCHAR(16777216) | Program-owned market PDA (reserve / bank / vault), not the Solana program ID. |
| borrower_address | VARCHAR(16777216) | Address of the under-collateralized borrower whose position was liquidated. May be null when the protocol identifies the position by an obligation/vault PDA instead (see extra_fields). |
| liquidator_address | VARCHAR(16777216) | Address of the account that triggered the liquidation and received the discounted collateral. |
| mint | VARCHAR(16777216) | Base58-encoded mint address of the collateral token seized in the liquidation. |
| token_name | VARCHAR(16777216) | Full name of the collateral token. |
| token_symbol | VARCHAR(16777216) | Ticker symbol of the collateral token. |
| token_decimals | NUMBER(38,0) | Number of decimal places used to represent the collateral token’s smallest unit. |
| raw_amount_str | VARCHAR(16777216) | Collateral amount seized, in the smallest unit, as a string, to retain precision. |
| amount_str | VARCHAR(16777216) | Normalized collateral amount seized, as a string, to retain precision. |
| amount | FLOAT | Collateral amount seized, normalized by the token’s decimal precision. |
| usd_amount | FLOAT | USD value of the collateral seized at the time of the transaction. |
| usd_exchange_rate | FLOAT | USD price per unit of the collateral token at the time of the event. |
| repay_mint | VARCHAR(16777216) | Base58-encoded mint address of the debt token repaid during the liquidation. |
| repay_token_name | VARCHAR(16777216) | Full name of the debt token repaid. |
| repay_token_symbol | VARCHAR(16777216) | Ticker symbol of the debt token repaid. |
| repay_token_decimals | NUMBER(38,0) | Number of decimal places used to represent the debt token’s smallest unit. |
| repay_raw_amount_str | VARCHAR(16777216) | Debt amount repaid, in the smallest unit, as a string, to retain precision. Null when a protocol does not expose the repay leg as an event (e.g. MarginFi). |
| repay_amount_str | VARCHAR(16777216) | Normalized debt amount repaid, as a string, to retain precision. |
| repay_amount | FLOAT | Debt amount repaid, normalized by the token’s decimal precision. |
| repay_usd_amount | FLOAT | USD value of the debt repaid at the time of the transaction. |
| extra_fields | VARIANT | JSON object containing additional fields from the onchain event that are not part of the standard schema (e.g. the obligation/vault PDA when borrower_address is null). |
| txn_id | VARCHAR(16777216) | Base58-encoded transaction signature on Solana. |
| txn_index | NUMBER(38,0) | Zero-based position of this transaction within its slot. |
| signer | VARCHAR(16777216) | Primary signing account (fee payer) of the transaction. |
| instruction_index | NUMBER(38,0) | Zero-based position of this instruction within the transaction’s top-level instructions array. |
| inner_instruction_index | NUMBER(38,0) | Zero-based position of this inner instruction within its parent instruction’s inner instructions array. -1 for top-level instructions. |
| pseudo_instruction_order | NUMBER(38,0) | Internal ordering key for instructions within a transaction that may lack an explicit index. |
| block_slot | NUMBER(38,0) | Solana slot number in which this transaction was confirmed. |
| block_height | NUMBER(38,0) | Number of confirmed blocks between this block and the genesis block (inclusive). |
| block_timestamp | TIMESTAMP_NTZ(9) | Timestamp (UTC) of the block in which this event was confirmed. |
| block_hash | VARCHAR(16777216) | Cryptographic hash of the block header that contains this record. |
| unique_id | VARCHAR(16777216) | Allium’s deterministic unique identifier for this row. |
| _created_at | TIMESTAMP_NTZ(9) | Timestamp (UTC) when this row was first written to the Allium platform. |
| _updated_at | TIMESTAMP_NTZ(9) | Timestamp (UTC) of the most recent update to this row. |
Sample Query
- Recent Liquidations
- Daily Liquidation Volume
Get recent liquidation events with essential details:
select
project,
protocol,
token_symbol as collateral_symbol,
usd_amount as collateral_usd,
repay_token_symbol,
repay_usd_amount,
liquidator_address,
block_timestamp
from solana.lending.liquidations
where block_timestamp >= current_timestamp - interval '7 days'
order by block_timestamp desc
limit 100
Calculate daily liquidation volume by protocol:
select
date(block_timestamp) as day,
project,
protocol,
count(*) as liquidation_count,
sum(usd_amount) as total_collateral_seized_usd
from solana.lending.liquidations
where block_timestamp >= current_timestamp - interval '30 days'
group by day, project, protocol
order by day desc, total_collateral_seized_usd desc