PHPackages                             sarana/rpc - 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. sarana/rpc

ActiveLibrary[API Development](/categories/api)

sarana/rpc
==========

Laravel package to interact with blockchain RPC nodes (e.g. Ethereum, BSC) using Tatum API

v1.0.0(10mo ago)038mitPHP

Since Jun 25Pushed 10mo agoCompare

[ Source](https://github.com/zain87almadani/sarana-rpc)[ Packagist](https://packagist.org/packages/sarana/rpc)[ RSS](/packages/sarana-rpc/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Sarana RPC
==========

[](#sarana-rpc)

Library Laravel untuk interaksi dengan node blockchain (BSC, Ethereum, dll) via RPC. Memudahkan pengembangan aplikasi yang membutuhkan komunikasi dengan jaringan blockchain tanpa harus mengelola node sendiri secara langsung.

Instalasi
---------

[](#instalasi)

jalankan perintah berikut untuk menginstall package:

```
composer require sarana/rpc
```

Konfigurasi
-----------

[](#konfigurasi)

Setelah instalasi, publish konfigurasi package dengan perintah:

```
php artisan vendor:publish --provider="Sarana\Blockchainrpc\SaranaRpcServiceProvider" --tag="saranarpc-config"
```

Kemudian, tambahkan konfigurasi koneksi RPC di file `.env`:

```
TATUM_RPC_URL=
TATUM_RPC_KEY=
CHAIN_ID=

```

Sesuaikan `TATUM_RPC_URL`, `TATUM_RPC_KEY`, `CHAIN_ID` sesuai kebutuhan aplikasi Anda.

Fitur
-----

[](#fitur)

- Cek saldo native coin (BNB, ETH, dll) dengan `cekBalance`
- Cek saldo token ERC20/BEP20 dengan `cekTokenBalance`
- Mengirim transaksi blockchain dengan `sendTransaction`
- Mendapatkan detail transaksi dan statusnya
- Mendukung berbagai jaringan blockchain yang kompatibel dengan RPC Ethereum

Contoh Penggunaan
-----------------

[](#contoh-penggunaan)

### Cek Saldo Native Coin

[](#cek-saldo-native-coin)

```
use Sarana\Rpc\SaranaRpc;

$sarana = new SaranaRpc();

$address = '0xYourWalletAddress';
$balance = $sarana->cekBalance($address);

echo "Saldo native coin: " . $balance . " wei";
```

### Cek Saldo Token ERC20/BEP20

[](#cek-saldo-token-erc20bep20)

```
$tokenAddress = '0xTokenContractAddress';
$address = '0xYourWalletAddress';

$tokenBalance = $sarana->cekTokenBalance($address, $tokenAddress);

echo "Saldo token: " . $tokenBalance;
```

### Kirim Transaksi

[](#kirim-transaksi)

```
$from = '0xYourWalletAddress';
$privateKey = 'your-private-key';
$to = '0xRecipientAddress';
$value = '1000000000000000000'; // 1 ETH atau BNB dalam wei
$gasLimit = "default (2100)";
$gasPriceGwei = "default (5)";

$txHash = $sarana->sendTransaction($sendFrom,$sendTo,$privateKey,$amount,$gasLimit,$gasPriceGwei);

echo "Transaksi dikirim dengan hash: " . $txHash;
```

### Kirim Token ERC20/BEP20

[](#kirim-token-erc20bep20)

```
$smartcontract = '0xYourWalletAddress';
$from = '0xYourWalletAddress';
$privateKey = 'your-private-key';
$to = '0xRecipientAddress';
$amount = '10'; // jumlah token dalam satuan normal (misalnya 10 token)
$gasLimit = "default (2100)";
$gasPriceGwei = "default (5)";

$txHash = $sarana->sendTokenTransaction($sendFrom,$sendTo,$privateKey,$smartcontract,$amount,$gasLimit,$gasPriceGwei);

echo "Token berhasil dikirim dengan hash: " . $txHash;
```

Format Respon
-------------

[](#format-respon)

- `cekBalance($address)`
    Mengembalikan saldo dalam satuan wei sebagai string.
- `cekTokenBalance($address, $tokenAddress)`
    Mengembalikan saldo token dalam satuan terkecil token (biasanya wei) sebagai string.
- `sendTransaction($from, $privateKey, $to, $value)`
    Mengembalikan hash transaksi (`string`) jika berhasil mengirim transaksi, atau `null` jika gagal.
- `sendTokenTransaction($from, $privateKey, $to, $amount)`
    Mengembalikan hash transaksi token sebagai `string` jika berhasil, atau pesan kesalahan jika gagal.

---

Untuk informasi lebih lanjut dan dokumentasi lengkap, silakan lihat kode sumber dan contoh penggunaan di repository.

Daftar Fungsi Tersedia
----------------------

[](#daftar-fungsi-tersedia)

Berikut adalah fungsi-fungsi publik yang tersedia pada kelas `SaranaRpc` beserta deskripsi dan parameternya:

### cekBalance

[](#cekbalance)

Mengecek saldo native coin (seperti ETH, BNB) dari sebuah alamat wallet.

**Signature:**

```
public function cekBalance(string $address): string
```

**Parameter:**

- `address` (`string`): Alamat wallet yang akan dicek saldonya.

**Return:**
Saldo dalam satuan wei sebagai string.

---

### cekTokenBalance

[](#cektokenbalance)

Mengecek saldo token ERC20/BEP20 dari sebuah alamat wallet.

**Signature:**

```
public function cekTokenBalance(string $address, string $tokenAddress): string
```

**Parameter:**

- `address` (`string`): Alamat wallet yang akan dicek saldonya.
- `tokenAddress` (`string`): Alamat kontrak token ERC20/BEP20.

**Return:**
Saldo token dalam satuan terkecil token (biasanya wei) sebagai string.

---

### sendTransaction

[](#sendtransaction)

Mengirim transaksi native coin dari satu alamat ke alamat lain.

**Signature:**

```
public function sendTransaction(string $from, string $to, string $privateKey, string $value, $gasLimit = null, $gasPriceGwei = null): ?string
```

**Parameter:**

- `from` (`string`): Alamat wallet pengirim.
- `to` (`string`): Alamat tujuan.
- `privateKey` (`string`): Private key dari wallet pengirim.
- `value` (`string`): Jumlah native coin yang akan dikirim (dalam satuan wei).
- `gasLimit` (`int|string|null`, opsional): Batas gas untuk transaksi (default: 21000 jika tidak diisi).
- `gasPriceGwei` (`int|string|null`, opsional): Harga gas dalam satuan Gwei (default: 5 jika tidak diisi).

**Return:**
Hash transaksi (`string`) jika berhasil, atau `null` jika gagal.

---

### sendTokenTransaction

[](#sendtokentransaction)

Mengirim token ERC20/BEP20 dari satu alamat ke alamat lain.

**Signature:**

```
public function sendTokenTransaction(string $from, string $to, string $privateKey, string $contractAddress, string $amount, $gasLimit = null, $gasPriceGwei = null): string
```

**Parameter:**

- `from` (`string`): Alamat wallet pengirim.
- `to` (`string`): Alamat tujuan.
- `privateKey` (`string`): Private key dari wallet pengirim.
- `contractAddress` (`string`): Alamat kontrak token ERC20/BEP20.
- `amount` (`string`): Jumlah token yang akan dikirim dalam satuan normal (bukan wei).
- `gasLimit` (`int|string|null`, opsional): Batas gas untuk transaksi (default: 21000 jika tidak diisi).
- `gasPriceGwei` (`int|string|null`, opsional): Harga gas dalam satuan Gwei (default: 5 jika tidak diisi).

**Return:**
Hash transaksi token sebagai `string` jika berhasil, atau pesan kesalahan jika gagal.

---

### getBlock

[](#getblock)

Mendapatkan block height (ketinggian blok) terbaru dari blockchain.

**Signature:**

```
public function getBlock(): array
```

**Return:**
Array dengan format `['message' => 'success', 'data' => (int) blockNumber]` atau `['message' => 'failed', 'data' => '...']`

---

### getTransactionByHash

[](#gettransactionbyhash)

Mengambil informasi detail transaksi berdasarkan hash.

**Signature:**

```
public function getTransactionByHash(string $txHash): array
```

**Parameter:**

- `txHash` (`string`): Hash transaksi yang ingin dicek.

**Return:**
Array terstruktur dengan informasi seperti:

- `hash`
- `from`
- `to`
- `amount`
- `confirmation`
- `transaction_type` (`coin` atau `token`)
- `token_amount`
- `smartcontract`

---

### getTransactionReceipt

[](#gettransactionreceipt)

Mengambil receipt dari transaksi untuk mengecek status berhasil/gagal.

**Signature:**

```
public function getTransactionReceipt(string $txHash): array
```

**Parameter:**

- `txHash` (`string`): Hash transaksi yang ingin dicek.

**Return:**
Detail receipt dalam format array Laravel, atau error jika gagal.

---

### createAddress

[](#createaddress)

Membuat wallet Ethereum/BSC baru lengkap dengan public address dan private key.

**Signature:**

```
public function createAddress(): array
```

**Return:**
Array dengan struktur:

- `address` (`string`): Alamat publik wallet
- `privateKey` (`string`): Private key dalam format heksadesimal

---

### importAccount

[](#importaccount)

Mengimpor akun wallet dari private key untuk mendapatkan public address-nya.

**Signature:**

```
public function importAccount(string $privateKey): array
```

**Parameter:**

- `privateKey` (`string`): Private key dari wallet yang ingin diimpor

**Return:**
Array dengan struktur:

- `address` (`string`): Alamat publik wallet
- `privateKey` (`string`): Private key yang sama

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance53

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

327d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/167aa061bfaf0e03cc3130b587f32684a279e4955fa7290fc6dd33e2ca6df111?d=identicon)[zain87almadani](/maintainers/zain87almadani)

---

Top Contributors

[![zain87almadani](https://avatars.githubusercontent.com/u/100024147?v=4)](https://github.com/zain87almadani "zain87almadani (12 commits)")

### Embed Badge

![Health badge](/badges/sarana-rpc/health.svg)

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

###  Alternatives

[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)[hubspot/api-client

Hubspot API client

23914.2M16](/packages/hubspot-api-client)[botman/driver-telegram

Telegram driver for BotMan

92437.3k6](/packages/botman-driver-telegram)

PHPackages © 2026

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