solana.lending.loans table contains Solana lending loan events (borrows). This table tracks all borrowing activity across supported lending protocols on Solana (Kamino, MarginFi, Jupiter Lend, and Save).
Use this table to analyze borrowing patterns, track loan volumes, and understand lending activity across different protocols and tokens.
Table Details
| Property | Value |
|---|---|
| Table Name | solana.lending.loans |
| 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. borrow_obligation_liquidity, lending_account_borrow). |
| program_id | VARCHAR(16777216) | Program-owned market PDA (reserve / bank / vault), not the Solana program ID. |
| borrower_address | VARCHAR(16777216) | Address of the account that borrowed funds from the lending protocol. |
| target_address | VARCHAR(16777216) | Address of the target recipient of the borrowed tokens. |
| mint | VARCHAR(16777216) | Base58-encoded mint address of the SPL token being borrowed. |
| token_name | VARCHAR(16777216) | Full name of the token being borrowed. |
| token_symbol | VARCHAR(16777216) | Ticker symbol of the token being borrowed. |
| token_decimals | NUMBER(38,0) | Number of decimal places used to represent the token’s smallest unit. |
| raw_amount_str | VARCHAR(16777216) | Token amount in the smallest unit, as a string, to retain precision. |
| amount_str | VARCHAR(16777216) | Normalized token amount, as a string, to retain precision. |
| amount | FLOAT | Token amount normalized by the token’s decimal precision. |
| usd_amount | FLOAT | USD value of the tokens borrowed at the time of the transaction. |
| usd_exchange_rate | FLOAT | USD price per unit of the token at the time of the event. |
| extra_fields | VARIANT | JSON object containing additional fields from the onchain event that are not part of the standard schema. |
| 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 Loans
- Daily Loan Volume
Get recent loan events with essential details:
select
project,
protocol,
token_symbol,
amount,
usd_amount,
borrower_address,
block_timestamp
from solana.lending.loans
where block_timestamp >= current_timestamp - interval '7 days'
order by block_timestamp desc
limit 100
Calculate daily loan volume by protocol:
select
date(block_timestamp) as day,
project,
protocol,
count(*) as loan_count,
sum(usd_amount) as total_volume_usd
from solana.lending.loans
where block_timestamp >= current_timestamp - interval '30 days'
group by day, project, protocol
order by day desc, total_volume_usd desc