Monitor new program deployments on Solana to track program launches, analyze deployment trends, or build program discovery tools.
Use Case
Program deployment tracking enables you:
- Track new program launches
- Monitor program upgrade activity
- Analyze deployment trends
- Build program discovery dashboards
Code Example
curl --compressed -X POST 'https://portal.sqd.dev/datasets/solana-mainnet/stream' \
-H 'Content-Type: application/json' \
-d '{
"type": "solana",
"fromBlock": 270000044,
"toBlock": 270000047,
"fields": {
"block": {
"number": true,
"timestamp": true
},
"transaction": {
"signatures": true,
"feePayer": true
},
"instruction": {
"programId": true,
"accounts": true
}
},
"instructions": [{
"programId": ["BPFLoaderUpgradeab1e11111111111111111111111"]
}]
}'
Try it yourself with the interactive query interface below:
Key Parameters
| Parameter | Description |
|---|
programId | BPF Upgradeable Loader program ID for deployments |
accounts | Instruction accounts (first account is typically the program) |
transactionIndex | Transaction index (use to match with transactions array) |
Program deployments on Solana use the BPF Upgradeable Loader program. Different instruction types within this program indicate deployments, upgrades, or closures.
Expected Output
{
"header": {
"number": 259985000,
"timestamp": 1697544779
},
"instructions": [
{
"programId": "BPFLoaderUpgradeab1e11111111111111111111111",
"accounts": ["NewProgramAddress...", "..."],
"transactionIndex": 0
}
]
}
Filter by Deployer
Track deployments from specific addresses:
curl --compressed -X POST 'https://portal.sqd.dev/datasets/solana-mainnet/stream' \
-H 'Content-Type: application/json' \
-d '{
"type": "solana",
"fromBlock": 270000044,
"toBlock": 270000047,
"fields": {
"transaction": {
"signatures": true,
"feePayer": true
},
"instruction": {
"programId": true,
"accounts": true,
"transactionIndex": true
}
},
"instructions": [{
"programId": ["BPFLoaderUpgradeab1e11111111111111111111111"]
}],
"transactions": [{
"feePayer": ["DeployerAddressHere"]
}]
}'
- Filter by deployer: Query deployments from specific addresses
- Use slot ranges: Process data in manageable batches
- Request minimal fields: Only request fields you need
- Combine filters: Use both program and transaction filters for precision