tightenco/solana-php-sdk
A PHP SDK for building on Solana. Create and manage keypairs, build, sign, and send transactions, query accounts and program data, and interact with on-chain programs through a clean, framework-friendly API that fits naturally into Laravel and plain PHP projects.
call() is the unlock for authenticated RPC providers (Helius, QuickNode, Triton, or an internal gateway). Before this, "production-grade RPC" implied a fork; now it's configuration. This belongs in the infra budget line and the vendor-selection decision, not buried in a technical footnote.Consider it when:
call(), no longer a blocker..env are fine for a devnet spike and unacceptable for a production treasury.Look elsewhere when:
To executives — the short version. We can ship our first Solana capability inside the Laravel product we already run, without adding a new language runtime or a new service to operate and page someone for. This library — maintained by Tighten, a well-regarded PHP consultancy — gives us the chain primitives we need: read accounts, verify ownership, build transactions, sign, submit. The v0.3.2 release is small but removes a genuine production blocker: we can now send authenticated requests to commercial RPC providers, which is a prerequisite for reliable traffic and for key rotation. The honest caveat is maturity — it's pre-1.0 — so we pin exact versions, keep it behind our own interface, and treat signing-key custody as a separate, deliberately funded epic rather than a side effect of this adoption. Net: lower cost and faster time-to-market for our first Solana feature, and we defer the expensive "build a blockchain team" decision until a feature actually demands it. The realistic first deliverable is read-only verification — balances and ownership — not money movement.
To engineering — what matters in this release and what to build around it.
call() now accepts custom headers. Treat provider credentials as configuration and DI, never as literals at call sites. That's what lets us rotate keys, add tracing headers, and route through a proxy without a code change.SolanaGateway interface, pin the exact version in composer.json (no caret range at 0.x), and route every signing path through a single service, ideally inside queued jobs with retry/backoff around RPC calls. Roughly a day of work — the difference between an upstream bump being a chore and an incident.ext-sodium is present in every runtime image — local, CI, queue workers, deploy targets. It fails at keypair construction, so a gap surfaces at runtime in a worker rather than in the pipeline.solana-test-validator harness early — blockhash expiry, commitment levels, and duplicate submission won't throw, they'll just fail on-chain.How can I help you explore Laravel packages today?