What's so smart about blockchains? How smart contracts (aka programs) work on Solana
A beginner guide to what makes blockchains programmable, how Solana programs actually run, and how ProgramWatch, idl.solana.com, and Orquestra each help you inspect and integrate them.
devrels.xyz/a/162short linkPeople say blockchains are "smart" and then wave at words like smart contracts, DeFi, and on-chain programs. The smart part is not magic. It is a simple idea with large consequences: a network of independent computers can all run the same code against the same inputs and agree on the same outputs, without trusting a single company's server.
That shared, verifiable code is what the industry called smart contracts. On Solana the same idea is called a program. Same job, different vocabulary. This article is the beginner map: what makes that model useful, how a Solana program actually works when you send it a transaction, and three free tools that help you read programs once you find them:
- programwatch.dev for trust and lifecycle metadata
- idl.solana.com for the interface definition (IDL) and its history
- orquestra.dev for turning that interface into a hosted API agents can call

What is actually smart about a blockchain?
A normal app is smart in the everyday sense: a server you control runs logic you wrote. Users trust you. If you change the code at 3am, only your database knows.
A blockchain is smart in a different sense. The interesting properties are:
- Shared execution. Thousands of validators run (or re-check) the same logic. If one operator cheats, the others disagree and that block does not stick.
- Determinism. Given the same starting state and the same transaction, every honest node must produce the same result. That is why programs cannot open random network sockets or read wall-clock time freely the way a normal server can.
- Rules you can inspect. The code that moves tokens or settles a trade is public bytecode. You do not have to trust a marketing site; you can inspect the program that will run against your signature.
- Composability. Because programs share one state machine, one app can call another in the same transaction (on Solana, via CPI). That is how a wallet UI, a DEX aggregator, and a lending market can stack without a central integration team.
That is the whole pitch, stripped of slogans: programmable money and programmable agreements, enforced by cryptography and consensus instead of a single operator.
Smart contracts vs Solana programs
On Ethereum and most EVM chains, people say smart contract. On Solana, the runtime object is a program: executable code stored at a program ID. Users and other programs send it instructions.
Two beginner traps:
- A program is not a wallet. Token balances live in accounts. The Token program knows how to move them when you send the right instruction with the right accounts. The program is the rulebook; accounts are the ledger rows.
- Calling a program is not "just an address + calldata." Solana requires every account the instruction will read or write to be listed up front, with flags for signer and writable. That design is why parallel execution is possible, and why interfaces on Solana are richer than a one-line ABI string. We covered that gap in depth in Where is Solana's ABI?.
What happens when you "call" a program
Mentally, a Solana transaction is a checklist:
- You (or a wallet / app) build one or more instructions. Each names a program ID, a list of accounts, and an opaque byte buffer of arguments.
- You sign. That proves you authorized those account permissions (for example, debiting your token account).
- A leader validator schedules the transaction. The runtime loads the program, hands it the accounts and data, and meters compute units so one instruction cannot loop forever.
- The program succeeds or fails. On success, account changes commit. On failure, the whole transaction rolls back.
A tiny conceptual sketch (not a real SDK):
Transaction
└── Instruction
program_id: Tokenkeg... // which program runs
accounts: [user_ata, mint, authority, ...] // explicit state
data: <bytes> // "what to do" (layout defined by the program)Without a published description of that byte layout and those accounts, explorers show hex, wallets show generic warnings, and integrators reverse-engineer. That description is the IDL.
The IDL: the program's public manual
An Interface Definition Language file is JSON that lists a program's instructions, account shapes, custom types, events, and errors. Anchor and Codama produce IDLs. Explorers use them to decode transactions. Code generators use them to emit typed clients. Agents use them to know which tools exist.
Not every program publishes one. ProgramWatch currently indexes tens of thousands of programs and only a few thousand with an IDL. When an IDL is missing, integration gets harder and riskier. When it exists on-chain, you can also track how it changed over time, which matters when a team ships upgrades.
Three tools, three jobs
Once you understand that programs are shared code plus explicit accounts, the next beginner question is practical: how do I inspect one? Three complementary products answer different slices of that question. They are not rivals; they stack.
ProgramWatch: is this program safe to depend on?
ProgramWatch is a program explorer aimed at integrators, not at "did my swap land?" For a given program ID it surfaces the metadata that changes your trust model:
- Upgradeable vs frozen, and who holds the upgrade authority
- Verified build status (bytecode matches public source)
- Whether an IDL is available
- Ecosystem views such as top programs by recent invocations (see our top-10 programs piece)
- A free HTTP API for stats, program lookups, and leaderboards
Use it before you CPI into something new, route user capital through a third-party program, or write docs that assume a program is immutable. Deep dive: ProgramWatch explorer article.
idl.solana.com: what is the interface, and how did it change?
IDL History Explorer (official Solana tooling, solana-foundation/idl) answers a narrower, deeper question. Paste a program ID and choose a mode:
- Current IDL for the live interface
- Latest IDLs across formats
- IDL history reconstructing on-chain history for both Program Metadata (PMP) and legacy Anchor IDL paths
- security.txt for contact and security metadata (PMP first, ELF fallback)
Use it when you need the actual JSON interface, when an upgrade may have changed instruction layouts, or when you want the security contact path published with the program. It is the specialist for IDL archaeology, not for upgrade-authority dashboards or agent APIs.
Orquestra: if the IDL is the spec, serve it as an API
Orquestra takes an Anchor or Codama IDL and hosts the rest: REST endpoints for instructions and accounts, PDA helpers, AI-readable llms.txt, and a public MCP server so agents can search programs, list instructions, derive PDAs, and build unsigned transactions (you still sign). Open source, MIT, Cloudflare Workers under the hood, with verified-build gated ingest for registry hygiene.
Use it when a partner wants HTTP instead of a Rust/TypeScript SDK, or when an agent needs tools instead of a repo. Full write-up: Orquestra: IDL to REST, docs, and MCP.
Feature comparison
Same ecosystem object (a Solana program), three product jobs. Read this as a checklist for which tab to open, not as a ranking.
Primary job
- ProgramWatch: program identity, lifecycle, and trust signals for integrators
- idl.solana.com: fetch, view, and reconstruct IDLs and security.txt over time
- Orquestra: turn a published IDL into hosted REST + MCP surfaces for humans and agents
Upgrade authority and freeze status
- ProgramWatch: first-class. Mutable vs frozen, authority, related metadata
- idl.solana.com: not the focus (interface history, not authority dashboard)
- Orquestra: not a trust explorer; assumes you already chose a program/IDL
Verified builds
- ProgramWatch: shows verification status in the explorer and aggregate stats
- idl.solana.com: not a verification product
- Orquestra: uses verified-build gates when ingesting programs into the shared registry
IDL access
- ProgramWatch: whether an IDL is available and how it fits the program page
- idl.solana.com: current, latest, and full historical reconstruction (PMP + Anchor)
- Orquestra: upload or discover an IDL, then version it as the source of truth for generated APIs
security.txt / security contacts
- ProgramWatch: not the primary surface
- idl.solana.com: dedicated security.txt lookup (PMP-first, ELF fallback)
- Orquestra: not the primary surface
Invocation rankings and ecosystem browsing
- ProgramWatch: top programs, stats API, browse by program properties
- idl.solana.com: lookup by program ID
- Orquestra: searchable registry of registered programs for API/MCP use
Build transactions / call programs over HTTP
- ProgramWatch: no (read/inspect focused APIs)
- idl.solana.com: no (read/inspect IDL and security metadata)
- Orquestra: yes, unsigned transaction builder plus optional simulation with decoded Anchor errors
AI agents (MCP, llms.txt)
- ProgramWatch: machine-readable APIs and
llms.txtstyle discovery hooks exist for the site; not an instruction-level MCP suite - idl.solana.com: human-oriented explorer UI
- Orquestra: public MCP server (
https://api.orquestra.dev/mcp), per-projectllms.txt, tools to list/build/simulate instructions
Who should open which first
- "Can I trust integrating this program ID?" Start at ProgramWatch.
- "What does instruction X look like, and did the IDL change last upgrade?" Open idl.solana.com.
- "I need HTTP or an agent to talk to this program without writing a backend." Use Orquestra once you have an IDL you accept.
A beginner workflow that actually works
- Find the program ID (docs, explorer, or a team's repo).
- Check ProgramWatch: frozen or upgradeable, authority shape, verified build, IDL present.
- Pull the interface on idl.solana.com. If history shows churn, treat clients as version-sensitive.
- For product work, generate a typed client (Codama / Anchor) or host the IDL through Orquestra for partners and agents.
- Still use a normal transaction explorer (Solscan, official Solana Explorer) for "did this signature land?" That is a different job.
What to learn next
Once the vocabulary sticks, the productive path is small and concrete:
- PDAs for how programs own state without private keys
- CPI for how programs call each other
- Anchor vs Pinocchio vs Steel if you want to write a program, not just call one
- Verified builds for the standard behind the verification badges
Resources
- programwatch.dev and our ProgramWatch deep dive
- idl.solana.com (IDL History Explorer) · github.com/solana-foundation/idl
- orquestra.dev and our Orquestra write-up
- Solana docs: IDLs
- Where is Solana's ABI?
The smart part of blockchains is not hype language. It is shared programs, checked by many machines, with interfaces you can download. On Solana, start with the program ID, read its trust signals, read its IDL, then decide how you want to call it.
Keep reading
Every EVM developer hits this wall: on Ethereum you inline a function signature string and call the contract; on Solana you're handed a JSON IDL and told to run a code generator. The gap is real, it has a structural reason, and the tooling has quietly caught up. A field guide to IDLs, Codama, and the account model that makes inline ABIs impossible.
The IDL describes everything about a Solana program, so why are you still writing a backend to expose it? Orquestra takes an Anchor or Codama IDL and hosts the rest: REST endpoints for instructions and accounts, PDA derivation, an unsigned transaction builder, llms.txt for AI agents, and a public MCP server. A look at what it does and where it fits.
Rank programs by what actually gets called on Solana and you get a different picture than TVL charts: SPL Token at 346M invocations a day, the Pump.fun stack summing to ~100M across three programs, Meteora's open-source DAMM v2 out-calling Jupiter, and — at #6 — a program that looks like anonymous bot infrastructure on every explorer but resolves to Phoenix Perps once you dig. Sourced from ProgramWatch's free API, then cross-checked against the OtterSec verify registry, Solana Compass, and each team's repos — which is where the real story turned out to be.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
