Skip to main content
SolixDB indexes and parses transactions from major Solana DeFi protocols, providing instruction-level detail for analytics and research.

Active Protocols

These protocols are currently indexed and available for querying:

Drift V2

Perpetual futures and spot trading protocol

Kamino Farms

Yield farming and liquidity mining

Kamino Lending

Lending and borrowing protocol

Kamino Lending Vault

Vault-based lending products

Kamino Limo

Liquidity management protocol

Meteora DLMM

Dynamic Liquidity Market Maker

Meteora DAMM V2

Dynamic AMM V2

Meteora Dynamic Bonding Curve

Dynamic bonding curve AMM

Protocol Reference

Active Protocols

Drift V2

Protocol Name: drift_v2
Program ID: dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH
Drift Protocol is a decentralized perpetual futures exchange on Solana. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["drift_v2"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Kamino Farms

Protocol Name: kamino_farms
Program ID: FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr
Kamino Farms provides yield farming opportunities on Solana. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["kamino_farms"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Kamino Lending

Protocol Name: kamino_lending
Program ID: KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD
Kamino Lending is a lending and borrowing protocol. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["kamino_lending"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Kamino Lending Vault

Protocol Name: kamino_lending_vault
Program ID: KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd
Vault-based lending products from Kamino. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["kamino_lending_vault"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Kamino Limo

Protocol Name: kamino_limo
Program ID: LiMoM9rMhrdYrfzUCxQppvxCSG1FcrUK9G8uLq4A1GF
Liquidity management protocol. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["kamino_limo"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Meteora DLMM

Protocol Name: meteora_dlmm
Program ID: LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo
Dynamic Liquidity Market Maker from Meteora. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["meteora_dlmm"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Meteora DAMM V2

Protocol Name: meteora_damm_v2
Program ID: cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG
Dynamic AMM V2 from Meteora. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["meteora_damm_v2"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Meteora Dynamic Bonding Curve

Protocol Name: meteora_dynamic_bonding_curve
Program ID: dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN
Dynamic bonding curve AMM from Meteora. Example Query:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransactions",
  "params": [{
    "filters": {
      "protocols": ["meteora_dynamic_bonding_curve"],
      "status": "succeeded"
    },
    "limit": 100
  }]
}

Additional Protocols (Available on Request)

These protocols can be enabled for your account:

Jupiter V6

Protocol Name: jupiter_v6
Program ID: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
Jupiter Aggregator V6 - DEX aggregator for finding the best swap routes.

Jupiter V4

Protocol Name: jupiter_v4
Program ID: JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB
Jupiter Aggregator V4 - Previous version of Jupiter aggregator.

Pump AMM

Protocol Name: pump_amm
Program ID: pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA
Pump AMM - Automated market maker for token trading.

Pump.fun

Protocol Name: pump_fun
Program ID: 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
Pump.fun - Token launch platform.

Raydium AMM V3

Protocol Name: raydium_amm_v3
Program ID: CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK
Raydium AMM V3 - Automated market maker from Raydium.

Raydium CP Swap

Protocol Name: raydium_cp_swap
Program ID: CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C
Raydium CP Swap - Constant product market maker swap protocol.

Orca Whirlpool

Protocol Name: whirlpool
Program ID: whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
Orca Whirlpool - Concentrated liquidity DEX from Orca.

Request Additional Protocols

Need access to additional protocols? Contact us to enable them for your account.

Complete Protocol List

Active Protocols (8)

Protocol NameProgram IDStatus
drift_v2dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UHActive
kamino_farmsFarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91HrActive
kamino_lendingKLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjDActive
kamino_lending_vaultKvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjdActive
kamino_limoLiMoM9rMhrdYrfzUCxQppvxCSG1FcrUK9G8uLq4A1GFActive
meteora_dlmmLBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxoActive
meteora_damm_v2cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGGActive
meteora_dynamic_bonding_curvedbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqNActive

Additional Protocols (7)

Protocol NameProgram IDStatus
jupiter_v6JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4Available on Request
jupiter_v4JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJBAvailable on Request
pump_ammpAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEAAvailable on Request
pump_fun6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6PAvailable on Request
raydium_amm_v3CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqKAvailable on Request
raydium_cp_swapCPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1CAvailable on Request
whirlpoolwhirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCcAvailable on Request

How to Query Protocols

Method 1: Using JSON-RPC Methods

Get Transactions by Protocol

const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getTransactions',
    params: [{
      filters: {
        protocols: ['drift_v2', 'kamino_lending'],
        status: 'succeeded'
      },
      limit: 100
    }]
  })
});

Get Protocol Statistics

const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getProtocolStats',
    params: [{
      protocolName: 'drift_v2',
      blockTime: {
        gte: 1735689600,
        lte: 1738368000
      }
    }]
  })
});

Compare Multiple Protocols

const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getProtocolComparison',
    params: [{
      protocols: ['drift_v2', 'kamino_lending', 'meteora_dlmm'],
      blockTime: {
        gte: 1735689600,
        lte: 1738368000
      }
    }]
  })
});

Get Instruction Types for a Protocol

const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getInstructionTypes',
    params: [{
      protocolName: 'kamino_lending',
      limit: 20
    }]
  })
});

Method 2: Using SQL Queries

Query by Protocol Name

SELECT 
  signature,
  block_time,
  protocol_name,
  instruction_type,
  fee,
  compute_units,
  success
FROM transactions
WHERE protocol_name = 'drift_v2'
  AND success = 1
ORDER BY block_time DESC
LIMIT 100

Query Multiple Protocols

SELECT 
  protocol_name,
  instruction_type,
  COUNT(*) as count,
  AVG(fee) as avg_fee,
  AVG(compute_units) as avg_compute_units
FROM transactions
WHERE protocol_name IN ('drift_v2', 'kamino_lending', 'meteora_dlmm')
  AND block_time >= 1735689600
  AND block_time <= 1738368000
GROUP BY protocol_name, instruction_type
ORDER BY count DESC
LIMIT 50

Get Protocol Statistics

SELECT 
  protocol_name,
  COUNT(*) as total_transactions,
  SUM(success) as successful_transactions,
  (SUM(success) / COUNT(*)) * 100 as success_rate,
  AVG(fee) as avg_fee,
  AVG(compute_units) as avg_compute_units
FROM transactions
WHERE protocol_name = 'drift_v2'
  AND block_time >= 1735689600
  AND block_time <= 1738368000
GROUP BY protocol_name

Getting Available Protocols

Use the getProtocols method to get a list of all available protocols:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getProtocols",
  "params": []
}
Response:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    "drift_v2",
    "kamino_farms",
    "kamino_lending",
    "kamino_lending_vault",
    "kamino_limo",
    "meteora_dlmm",
    "meteora_damm_v2",
    "meteora_dynamic_bonding_curve"
  ]
}

Protocol-Specific Use Cases

Use getProtocolActivity to analyze trading volume and patterns over time for protocols like Drift V2.
Query Kamino Lending to analyze deposit/withdraw patterns, borrow rates, and liquidation events.
Analyze Kamino Farms to track yield farming activity, harvest frequency, and compound events.
Compare DEX protocols (Meteora DLMM, DAMM) to analyze swap volumes, fees, and success rates.
Use getProtocolComparison to compare multiple protocols side-by-side on metrics like success rate, fees, and compute units.

Common Patterns

Pattern 1: Get Recent Activity for a Protocol

// Get last 24 hours of activity
const oneDayAgo = Math.floor(Date.now() / 1000) - 86400;
const now = Math.floor(Date.now() / 1000);

const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getTransactions',
    params: [{
      filters: {
        protocols: ['drift_v2'],
        blockTime: {
          gte: oneDayAgo,
          lte: now
        },
        status: 'succeeded'
      },
      sortOrder: 'desc',
      limit: 1000
    }]
  })
});

Pattern 2: Analyze Instruction Types

// Get all instruction types for a protocol with statistics
const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getInstructionTypes',
    params: [{
      protocolName: 'kamino_lending',
      limit: 50
    }]
  })
});

Pattern 3: Compare Protocol Performance

// Compare multiple protocols
const response = await fetch('https://api.solixdb.xyz/v1/rpc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getProtocolComparison',
    params: [{
      protocols: ['drift_v2', 'kamino_lending', 'meteora_dlmm'],
      blockTime: {
        gte: 1735689600,
        lte: 1738368000
      }
    }]
  })
});

Next Steps