- What is superciety/elrond-sdk-laravel used for?
- It is a Laravel service-provider package that wraps the MultiversX (formerly Elrond) PHP SDK so Laravel apps get first-class access to on-chain primitives: account and balance queries, EGLD and ESDT token operations, NFT handling, transaction construction and signing, and smart-contract calls. It follows Laravel's container, facade and config conventions, so it drops into existing apps without custom bootstrapping. Typical use cases are wallets, marketplaces, loyalty and tokenization features, and backend settlement flows. It is aimed at applications that need both on-chain reads and writes, not just block explorers.
- How do I install the MultiversX SDK in a Laravel app?
- Installation is standard Composer plus package auto-discovery, followed by publishing the package config so you can set the network (mainnet, devnet or testnet) and signing credentials. The repository has also been referenced under the peerme/mx-sdk-laravel name, so confirm the exact Composer package name in the tag you intend to use before running composer require. After publishing, review the config keys rather than hardcoding endpoints or keys in application code. Pin the version deliberately once you have validated it against your Laravel and PHP baseline.
- Does this package support Laravel 12?
- Yes. Version 3.0.0's headline change is Laravel 12 compatibility, which matters because Laravel 12 is the current major and teams standardizing on it could not adopt earlier releases. Laravel 12 requires PHP 8.2 or newer, so adopting the package on L12 also raises your host app's PHP floor. Because the release notes only list the compatibility addition, read the actual composer.json constraints in the 3.0.0 tag to confirm the exact Laravel and PHP matrix before planning an upgrade.
- Is upgrading from 2.x to 3.0.0 a breaking change?
- Treat it as a semver-major upgrade and gate it behind a branch. A 2.x to 3.x jump for what looks like a compatibility addition usually implies a dropped-support boundary such as Laravel 10 or 11, or older PHP, even though the release notes do not say so explicitly. Diff the config keys, facades and method signatures between 2.3.0 and 3.0.0, and check whether the underlying MultiversX PHP SDK dependency moved to a new major with its own API changes. If you are on Laravel 10 or 11, confirm whether 2.3.0 remains the supported line for your framework version.
- How do I configure mainnet, devnet and testnet in Laravel?
- Network selection is handled through the published config file, so you can point each environment at mainnet, devnet or testnet without touching application code. Treat the RPC endpoint strategy as an integration decision rather than a config detail: define timeouts, retry behaviour and fallbacks for the API hosts you depend on. Keep separate credentials per environment and never let a testnet key reach production config. Confirm the supported endpoint options in the package's config file for the version you install.
- How should I store signing keys and wallet secrets in production?
- Do not keep private keys in plaintext config or environment files for anything that touches real funds. The safer pattern is to supply signing material through a KMS, HSM or secrets vault and inject it at runtime, keeping the SDK layer isolated behind a small signing service in your app. The package does not appear to ship documented KMS or HSM guidance, so that wrapper is your responsibility. Also restrict which processes can sign, since key handling plus transaction signing is a high-blast-radius area where misuse causes irreversible on-chain effects.
- How do I send EGLD or ESDT tokens and handle transaction nonces?
- The package builds, signs and submits EGLD and ESDT transfers for you, but nonce management and idempotency remain application concerns. Fetch the current account nonce before signing, serialize submissions per wallet, and use queue workers so retries do not produce duplicate transactions. Store an idempotency key alongside each intended transfer and reconcile against chain state before resubmitting anything ambiguous. A scheduler-driven reconciliation job is a reliable way to catch transactions that were broadcast but not confirmed.
- Can I call MultiversX smart contracts and work with NFTs from Laravel?
- Yes. The package exposes smart-contract calls plus NFT handling on top of the MultiversX PHP SDK, so you can invoke contract endpoints and manage non-fungible token data from ordinary Laravel services, jobs and controllers. Keep contract interaction behind your own domain services so argument encoding, gas limits and result parsing are validated in one place. Test any write path on testnet first, since contract calls that move value cannot be undone. Read paths such as querying token metadata and holdings are the easiest place to start.
- How do I test a MultiversX integration before going to production?
- Run your application's own test suite plus a testnet smoke test that covers read paths and a full signed transaction round-trip. Mock the SDK boundary in unit tests so you are not hitting live endpoints on every run, and reserve testnet for integration-level checks of signing, nonce handling and confirmation polling. The project's CI matrix across Laravel and PHP versions, and whether a testnet integration suite exists, is not clearly documented, so verify it yourself in the repository. Never validate a release for the first time on mainnet.
- Is this package actively maintained, and what are the risks?
- It is a small-community package: a single contributor is credited on the 3.0.0 release, so bus factor and release cadence are genuine considerations for a dependency that touches signing keys. There is also no clearly documented deprecation or support policy or security disclosure process in the release information, which you should confirm with the maintainer. The dependency tree is small, typically Guzzle and secp256k1 bindings, but it still needs routine audit. Pin versions with a committed composer.lock, avoid floating constraints, and have a fallback plan of using the underlying MultiversX PHP SDK directly.