superciety/elrond-sdk-laravel
A Laravel SDK for the Elrond (MultiversX) blockchain, providing ready-made tools to query accounts, send EGLD and ESDT tokens, manage wallets, and interact with smart contracts through a clean, framework-friendly API.
Architecture fit. peerme/mx-sdk-laravel is a Laravel service-provider package wrapping the MultiversX PHP SDK, giving Laravel applications first-class access to MultiversX primitives: account/balance queries, EGLD/ESDT token operations, NFT handling, transaction construction/signing, and smart-contract calls. It fits cleanly into Laravel's container/facade/config conventions and is intended for apps that need on-chain reads and writes (wallets, marketplaces, loyalty/tokenization features, backend settlement). v3.0.0's headline change — Laravel 12 compatibility — matters because Laravel 12 is the current major; without it, teams standardizing on L12 cannot adopt the package at all. The major version bump is the signal to scrutinize: a 2.x → 3.x jump for a compatibility addition usually implies a dropped-support boundary (e.g., Laravel 10/11 or older PHP), even though the release notes do not say so explicitly.
Integration feasibility. Installation is standard Composer + package auto-discovery, with config publishing for network selection (mainnet/devnet/testnet) and signing credentials. The real integration work is not Laravel wiring but domain wiring: key/secret management (HSM/KMS/vault rather than plaintext config), nonce and idempotency handling for transaction submission, and RPC endpoint strategy. Laravel 12 requires PHP 8.2+, so the upgrade is coupled to the host app's PHP baseline.
Technical risk.
mx-sdk-php dependency was bumped with its own breaking changes, or whether public APIs (facades, DTOs, config keys) changed.Key questions.
mx-sdk-php (or other transitive deps) move to a new major, and are there associated API changes?Stack fit. Laravel 10/11/12 host apps, PHP 8.1+ (8.2+ required by Laravel 12). Fits naturally alongside queue workers (for async transaction submission), scheduler (for reconciliation jobs), and existing auth/user models. No framework-level conflicts expected beyond the usual transitive dependency checks.
Migration path. Treat 3.0.0 as a semver-major upgrade and gate it behind a branch:
composer.json constraints in the 3.0.0 tag to confirm the Laravel/PHP floor before planning anything (release notes alone are insufficient).composer.lock deliberately; avoid floating constraints on a package that handles signing.Compatibility. Primary compatibility axis is Laravel major × PHP version. Secondary axis is the underlying MultiversX PHP SDK version and its crypto extensions (ext-secp256k1/ext-gmp or equivalents). Confirm the production runtime image ships the required PHP extensions; this is a common CI-passes-but-container-fails trap.
Sequencing.
Maintenance. Small, single-maintainer project with infrequent releases. Expect to own most upgrade verification internally. Pin to exact versions and review release notes each cycle; do not auto-merge dependency bots on this package.
Support. Community support via GitHub issues; no commercial SLA. Internal runbooks for common failures (RPC down, nonce mismatch, failed tx) are essential and should be written before production use, not after.
Scaling. The SDK is a thin client; throughput is bounded by the chosen MultiversX RPC/gateway providers and by your own transaction submission design. Scale by queuing transaction submissions, applying backoff/retry with idempotency keys, and load-balancing or failing over across multiple RPC endpoints. Read-heavy workloads benefit from caching account/token metadata with short TTLs.
Failure modes.
Ramp-up. Codebase is small, so API ramp-up is quick for a Laravel developer. The real ramp is MultiversX domain literacy: transaction lifecycle, nonces, EGLD vs ESDT vs NFT semantics, and signing/key custody. Budget for one engineer to own the integration and for a security review of key handling before any mainnet write path goes live. For teams already on Laravel 12, v3.0.0 is the enabling release; for teams on older Laravel, confirm the support matrix before adopting.
How can I help you explore Laravel packages today?