Web3 PHP is a supercharged PHP API client that allows you to interact with a generic Ethereum RPC.
This project is a work-in-progress. Code and documentation are currently under development and are subject to change.
Requires PHP 8.0+
First, install Web3 via the Composer package manager:
composer require web3-php/web3 dev-masterThen, interact with a local (web3-php/cli) or remote ethereum node:
use Web3\Web3;
$web3 = new Web3('http://127.0.0.1:8545');
$accounts = $web3->eth()->accounts(); // ['0x54a3259f4f693e4c1e9daa54eb116a0701edc403', ...]The clientVersion method returns the version of the current client.
$web3->clientVersion(); // TestRPC v2.13.2The sha3 method hashes data using the Keccak-256 algorithm.
$web3->sha3('string'); // 0x348ab0847d053bb0150c1eb3470a71071d2967e20cf131b59dea3df9bf8f753eThe accounts method returns a list of addresses owned by this client.
$web3->eth()->accounts(); // ['0x54a3259f4f693e4c1e9daa54eb116a0701edc403', ...]The chainId method returns the current chain id.
$web3->eth()->chainId(); // 1The gasPrice method returns the current price of gas in wei.
$web3->eth()->gasPrice()->toEth(); // 0.00000002The getBalance method returns the balance of an address in wei.
$web3->eth()->getBalance('0x54a3259f4f693e4c1e9daa54eb116a0701edc403')->toEth(); // 100The getBlockTransactionCountByHash method returns the number of transactions in a block by its hash.
$web3->eth()->getBlockTransactionCountByHash('0xd2a91777651a08b92d1d9fc701982c79da2249532cfe41a773a340978f96b5d1'); // 266The getTransactionByHash method returns information about a transaction by its hash.
$web3->eth()->getTransactionByHash('0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b');The getTransactionReceipt method returns the receipt for a transaction by its hash.
$web3->eth()->getTransactionReceipt('0xbb3a336e3f823ec18197f1e13ee875700f08f03e2cab75f0d0b118dabb44cba0');The getUncleCountByBlockHash method returns the number of uncles in a block by its hash.
$web3->eth()->getUncleCountByBlockHash('0xd2a91777651a08b92d1d9fc701982c79da2249532cfe41a773a340978f96b5d1'); // 266The hashrate() method returns the number of hashes-per-second this node is mining at.
$web3->eth()->hashrate(); // '65' The isMining() method determines if the client is mining new blocks.
$web3->eth()->isMining(); // true The blockNumber() method returns the number (quantity) of the most recent block seen by this client.
$web3->eth()->blockNumber(); // '3220' The coinbase() method returns the Coinbase address of the client.
$web3->eth()->coinbase(); // '0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e' The sendTransaction method creates, signs, and sends a new transaction to the network.
use Web3\ValueObjects\{Transaction, Wei};
$from = '0xc9257b94da7f8eb07537db73a4ad0603cd83aba4';
$to = '0x108d1089e4a737c0be63527a6e464564be948b03';
$value = Wei::fromEth('1');
$transaction = Transaction::between($from, $to)->withValue($value);
$web3->eth()->sendTransaction($transaction); // '0xa124a7de5177cf5cedd3c44e91d115d0011f915905fa36fb7c000a491fa536ee' The submitWork() method submits a proof-of-work solution, and returns a boolean based on the result.
$web3->eth()->submitWork($nonce, $proofOfWorkHash, $mixDigest); // true The listening method determines if this client is listening for new network connections.
$web3->net()->listening(); // trueThe peerCount method returns the number of peers currently connected to this client.
$web3->net()->peerCount(); // 230The version method returns the chain ID associated with the current network.
$web3->net()->version(); // 1637712995212Web3 PHP is an open-sourced software licensed under the MIT license.
