renoki-co/laravel-web3
Laravel Web3 provides a Laravel-friendly wrapper for interacting with Ethereum via JSON-RPC. Configure nodes, query blocks and transactions, call smart contracts, and manage accounts with a clean Web3 facade and package config.
Architecture fit
renoki-co/laravel-web3 is a thin Laravel integration layer over web3p/web3.php: a service provider that binds a configured Web3 client into the container, a facade, and a publishable config file holding the node endpoint. There is essentially no business logic, no persistence, and no queue integration — it is glue, not a framework..env-driven endpoints) and a poor fit as a long-term dependency boundary. Because the wrapper is shallow, the real risk surface sits in the transitive dependency tree (web3p/web3.php, Keccak/hash primitives, big-integer math, secp256k1 signing helpers, Guzzle), not in the package itself.Integration feasibility
composer require, publish config, set WEB3_DEFAULT_ACCOUNT / node URL, inject the facade. Days, not weeks, for a read-only proof of concept against a testnet.illuminate/* constraints capped around Laravel 8/9 and PHP 7.4–8.1. On Laravel 10/11 or PHP 8.2/8.3 you will likely need --ignore-platform-reqs, a constraint patch, or an internal fork. Verify the actual constraint matrix before committing to an estimate.web3p/web3.php exposes: eth, net, personal, contract deploy/call, raw transaction signing. There are no typed DTOs, no retry/backoff, no idempotency keys, no event indexing, no revert-reason decoding, and no EIP-1559 gas strategy beyond what you write yourself.Technical risk
web3p/web3.php itself has low maintenance velocity; archiving the wrapper usually signals the author has moved on rather than that the underlying client is healthy.Key questions
Stack fit
Migration path
Web3Gateway interface in the app (getBalance, call, sendRawTransaction, getReceipt) and implement it with this package. This preserves the fast start while making the dependency swappable in one file.web3p/web3.php directly is a small, well-understood task and removes one archived artifact from the critical path while keeping identical functionality and API shape. This is the lowest-regret path.composer audit in CI, and schedule the fork as planned work rather than reactive work.Compatibility checklist
gmp or bcmath, mbstring, openssl; confirm presence in every runtime image including queue workers and CI.php artisan config:cache) — endpoints and keys must resolve from env at boot, not at call time.Sequencing
Web3Gateway + config + observability hooks. No domain code touches the package.Maintenance
composer audit, Dependabot, SCA in CI).Support
Scaling
eth_getBalance fan-out, JSON-RPC batch arrays), caching of quasi-static data (eth_chainId, eth_gasPrice with short TTL), and queue-based write submission.Failure modes
Ramp-up
How can I help you explore Laravel packages today?