somnia.defi Table: ez_lending_flashloans Type: View
What
This table captures flash loan transactions across lending protocols. Flash loans enable borrowing without collateral within a single transaction, provided the loan plus fees are repaid before transaction completion. This advanced DeFi primitive is primarily used for arbitrage, collateral swapping, and liquidations.Key Use Cases
- Analyzing arbitrage and MEV activity patterns
- Tracking flash loan volume and fee revenue
- Identifying power users and bot activity
- Monitoring large-scale DeFi operations
- Understanding cross-protocol composability
Important Relationships
- Often precedes transactions in DEX tables for arbitrage analysis
- Links to
ez_lending_liquidationsfor liquidation strategies - May connect to multiple protocols within single transaction
- References
price.ez_prices_hourlyfor USD valuations
Commonly-used Fields
initiator: Address that triggered the flash loanplatform: Lending protocol providing the loanflashloan_token/flashloan_token_symbol: Borrowed assetflashloan_amount/flashloan_amount_usd: Loan sizepremium_amount/premium_amount_usd: Fee paid
Sample queries
Columns
| Column Name | Data Type | Description |
|---|---|---|
| BLOCK_NUMBER | NUMBER | Sequential counter representing the position of a block in the blockchain since genesis (block 0). Key Facts: Immutable once finalized Primary ordering mechanism for blockchain data Increments by 1 for each new block Used as a proxy for time in many analyses Usage in Queries: Important: Block numbers are chain-specific. Block 15000000 on Ethereum ≠ block 15000000 on Polygon. |
| BLOCK_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the block was produced by validators/miners. Format: TIMESTAMP_NTZ (no timezone) Precision: Second-level accuracy Reliability: Set by block producer Can have minor variations (±15 seconds) Always increasing (newer blocks = later timestamps) Best Practices: Note: Use for time-series analysis, but be aware that block production rates vary by chain. |
| TX_HASH | TEXT | Unique 66-character identifier for the transaction. Format: 0x + 64 hexadecimal characters Usage: Primary key for transaction lookups Join key for traces, logs, and token transfers Immutable once confirmed Example: 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 |
| CONTRACT_ADDRESS | TEXT | Smart contract address that emitted this event or received the transaction. Key Points: Always the immediate event emitter for logs May differ from transaction to_address Lowercase normalized format Never NULL for valid events |
| EVENT_NAME | TEXT | The event name as defined in the contract’s ABI. Format: PascalCase event identifier Examples: Transfer - Token transfers Swap - DEX trades OwnershipTransferred - Admin changes Approval - Token approvals Usage Pattern: |
| EVENT_INDEX | NUMBER | Zero-based sequential position of the event within a transaction’s execution. Key Facts: Starts at 0 for first event Increments across all contracts in transaction Preserves execution order Essential for deterministic event ordering Usage Example: |
| ORIGIN_FUNCTION_SIGNATURE | TEXT | Function signature (first 4 bytes) of the called method. Format: 0x + 8 hex characters Common Signatures: 0xa9059cbb: transfer(address,uint256) 0x095ea7b3: approve(address,uint256) 0x23b872dd: transferFrom(address,address,uint256) Note: NULL for simple transfers or invalid calls |
| ORIGIN_FROM_ADDRESS | TEXT | The externally-owned account (EOA) or contract address that initiated the transaction. Key Points: Always 42 characters (0x + 40 hex chars) Lowercase normalized in all tables Cannot be NULL for valid transactions For contract creation: sender of creation transaction Common Patterns: EOA → EOA: Simple transfer EOA → Contract: User interaction Contract → Contract: Internal calls (see fact_traces) Known addresses: Exchange hot wallets, protocol deployers Query Examples: |
| ORIGIN_TO_ADDRESS | TEXT | The destination address for the transaction - either an EOA or contract address. Special Cases: NULL: Contract creation transaction Contract address: Interacting with smart contract EOA address: Simple transfer or receiving funds Important Patterns: Note: For token transfers, this is the token contract, not the recipient. See eztokentransfers tables for recipient. |
| PLATFORM | TEXT | The lending protocol where the transaction occurred. Example: ‘aave’ |
| INITIATOR | TEXT | The address that triggered the flash loan execution. Example: ‘0x7a250d5630b4cf539739df2c5dacb4c659f2488d’ |
| TARGET | TEXT | The contract address that receives and executes the flash loan logic. Example: ‘0x1111111254fb6c44bac0bed2854e76f90643097d’ |
| PROTOCOL_MARKET | TEXT | The lending protocol’s receipt token issued to depositors. Example: ‘0xfedcbafedcbafedcbafedcbafedcbafedcbafed’ |
| TOKEN_ADDRESS | TEXT | TOKEN_ADDRESS column |
| TOKEN_SYMBOL | TEXT | TOKEN_SYMBOL column |
| FLASHLOAN_TOKEN | TEXT | The contract address of the token borrowed in the flash loan. Example: ‘0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2’ This column will be deprecated October 13th, please update to token_address. |
| FLASHLOAN_TOKEN_SYMBOL | TEXT | The symbol of the token borrowed in the flash loan. Example: ‘WETH’ This column will be deprecated October 13th, please update to token_symbol. |
| FLASHLOAN_AMOUNT_UNADJ | NUMBER | The raw amount of tokens borrowed without decimal adjustment. Example: 1000000000000000000 |
| FLASHLOAN_AMOUNT | FLOAT | The decimal-adjusted amount of tokens borrowed in the flash loan. Example: 1.0 |
| FLASHLOAN_AMOUNT_USD | FLOAT | The USD value of assets borrowed in a flash loan. Example: 1000000.50 |
| PREMIUM_AMOUNT_UNADJ | NUMBER | The raw fee amount charged for the flash loan. Example: 900000000000000 |
| PREMIUM_AMOUNT | FLOAT | The decimal-adjusted fee paid for the flash loan. Example: 0.0009 |
| PREMIUM_AMOUNT_USD | FLOAT | The USD value of the flash loan fee. Example: 0.90 |
| EZ_LENDING_FLASHLOANS_ID | TEXT | Primary key - unique identifier for each row ensuring data integrity. Format: Usually VARCHAR containing composite key generated using MD5 hash of the relevant columns. Example: MD5(blocknumber, txhash, trace_index) Usage: Deduplication in incremental loads Join operations for data quality checks Troubleshooting specific records Important: Implementation varies by table - check table-specific documentation. |
| INSERTED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the record was first added to the Flipside database. Format: TIMESTAMP_NTZ Use Cases: Data freshness monitoring Incremental processing markers Debugging data pipeline issues SLA tracking Query Example: |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp of the most recent update to this record. Format: TIMESTAMP_NTZ Triggers for Updates: Data corrections Enrichment additions Reprocessing for accuracy Schema migrations Monitoring Usage: |