PHPackages                             gryfoss/web3.php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. gryfoss/web3.php

ActiveLibrary[API Development](/categories/api)

gryfoss/web3.php
================

Ethereum web3 interface (maintained).

v1.0.0(10mo ago)0701MITPHPPHP ^8.1CI passing

Since Sep 5Pushed 10mo agoCompare

[ Source](https://github.com/GryfOSS/web3.php)[ Packagist](https://packagist.org/packages/gryfoss/web3.php)[ RSS](/packages/gryfoss-web3php/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (5)Versions (2)Used By (1)

web3.php
========

[](#web3php)

[![Tests](https://github.com/GryfOSS/web3.php/workflows/Tests/badge.svg)](https://github.com/GryfOSS/web3.php/actions)[![Code Coverage](https://camo.githubusercontent.com/9755bc6d661829bc7ccc6728d131179793d48faaf4b8107981ef20d7566b647e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d39312e382532352d627269676874677265656e2e737667)](https://github.com/GryfOSS/web3.php/actions)[![Licensed under the MIT License](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](https://github.com/sc0Vu/web3.php/blob/master/LICENSE)

A maintained php interface for interacting with the Ethereum blockchain and ecosystem.

It is a modernised version of `https://github.com/iexbase/web3.php`. It includes more unit tests, higher tests coverage, functional tests, uses phpseclib3 and solves few bugs.

Version 1 can still be a drop-in replacement for `iexbase/web3.php`, but there is no intention to keep it that way going further.

Install
=======

[](#install)

```
composer require gryfoss/web3.php

```

Usage
=====

[](#usage)

### New instance

[](#new-instance)

```
use Web3\Web3;

$web3 = new Web3('http://localhost:8545');
```

### Using provider

[](#using-provider)

```
use Web3\Web3;
use Web3\Providers\HttpProvider;
use Web3\RequestManagers\HttpRequestManager;

$web3 = new Web3(new HttpProvider(new HttpRequestManager('http://localhost:8545')));

// timeout
$web3 = new Web3(new HttpProvider(new HttpRequestManager('http://localhost:8545', 0.1)));
```

### You can use callback to each rpc call:

[](#you-can-use-callback-to-each-rpc-call)

```
$web3->clientVersion(function ($err, $version) {
    if ($err !== null) {
        // do something
        return;
    }
    if (isset($version)) {
        echo 'Client version: ' . $version;
    }
});
```

### Eth

[](#eth)

```
use Web3\Web3;

$web3 = new Web3('http://localhost:8545');
$eth = $web3->eth;
```

Or

```
use Web3\Eth;

$eth = new Eth('http://localhost:8545');
```

### Net

[](#net)

```
use Web3\Web3;

$web3 = new Web3('http://localhost:8545');
$net = $web3->net;
```

Or

```
use Web3\Net;

$net = new Net('http://localhost:8545');
```

### Batch

[](#batch)

web3

```
$web3->batch(true);
$web3->clientVersion();
$web3->hash('0x1234');
$web3->execute(function ($err, $data) {
    if ($err !== null) {
        // do something
        // it may throw exception or array of exception depends on error type
        // connection error: throw exception
        // json rpc error: array of exception
        return;
    }
    // do something
});
```

eth

```
$eth->batch(true);
$eth->protocolVersion();
$eth->syncing();

$eth->provider->execute(function ($err, $data) {
    if ($err !== null) {
        // do something
        return;
    }
    // do something
});
```

net

```
$net->batch(true);
$net->version();
$net->listening();

$net->provider->execute(function ($err, $data) {
    if ($err !== null) {
        // do something
        return;
    }
    // do something
});
```

personal

```
$personal->batch(true);
$personal->listAccounts();
$personal->newAccount('123456');

$personal->provider->execute(function ($err, $data) {
    if ($err !== null) {
        // do something
        return;
    }
    // do something
});
```

### Contract

[](#contract)

```
use Web3\Contract;

$contract = new Contract('http://localhost:8545', $abi);

// deploy contract
$contract->bytecode($bytecode)->new($params, $callback);

// call contract function
$contract->at($contractAddress)->call($functionName, $params, $callback);

// change function state
$contract->at($contractAddress)->send($functionName, $params, $callback);

// estimate deploy contract gas
$contract->bytecode($bytecode)->estimateGas($params, $callback);

// estimate function gas
$contract->at($contractAddress)->estimateGas($functionName, $params, $callback);

// get constructor data
$constructorData = $contract->bytecode($bytecode)->getData($params);

// get function data
$functionData = $contract->at($contractAddress)->getData($functionName, $params);
```

### Testing

[](#testing)

Ganache cli interface is provided as a docker container in docker/ folder. Go there and run `docker compose up -d` to run it. Then run tests using `run-tests.sh`. It runs both PHPUnit and functional tests via Behat.

License
=======

[](#license)

MIT

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance55

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

301d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/168780730?v=4)[IDCT Bartosz Pachołek](/maintainers/ideaconnect)[@ideaconnect](https://github.com/ideaconnect)

---

Top Contributors

[![sc0Vu](https://avatars.githubusercontent.com/u/10494397?v=4)](https://github.com/sc0Vu "sc0Vu (400 commits)")[![bpacholek](https://avatars.githubusercontent.com/u/3039162?v=4)](https://github.com/bpacholek "bpacholek (22 commits)")[![serderovsh](https://avatars.githubusercontent.com/u/24723913?v=4)](https://github.com/serderovsh "serderovsh (4 commits)")[![1099511627776](https://avatars.githubusercontent.com/u/2117414?v=4)](https://github.com/1099511627776 "1099511627776 (4 commits)")[![sinabs](https://avatars.githubusercontent.com/u/1351257?v=4)](https://github.com/sinabs "sinabs (3 commits)")[![Arul-](https://avatars.githubusercontent.com/u/2255137?v=4)](https://github.com/Arul- "Arul- (2 commits)")[![sciku1](https://avatars.githubusercontent.com/u/11371543?v=4)](https://github.com/sciku1 "sciku1 (1 commits)")[![sunshuzhou](https://avatars.githubusercontent.com/u/2659011?v=4)](https://github.com/sunshuzhou "sunshuzhou (1 commits)")[![a10000005588](https://avatars.githubusercontent.com/u/12505827?v=4)](https://github.com/a10000005588 "a10000005588 (1 commits)")[![amateescu](https://avatars.githubusercontent.com/u/246655?v=4)](https://github.com/amateescu "amateescu (1 commits)")[![lsmelan](https://avatars.githubusercontent.com/u/4654979?v=4)](https://github.com/lsmelan "lsmelan (1 commits)")[![pash7ka](https://avatars.githubusercontent.com/u/2335215?v=4)](https://github.com/pash7ka "pash7ka (1 commits)")[![refear99](https://avatars.githubusercontent.com/u/7454701?v=4)](https://github.com/refear99 "refear99 (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gryfoss-web3php/health.svg)

```
[![Health](https://phpackages.com/badges/gryfoss-web3php/health.svg)](https://phpackages.com/packages/gryfoss-web3php)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M572](/packages/shopware-core)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[soneso/stellar-php-sdk

Stellar PHP SDK for the Stellar Network

4154.3k4](/packages/soneso-stellar-php-sdk)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
