decentraland
eth-connect
TypeScript

๐Ÿ”Œ Ethereum connector for Decentraland scenes and applications

Last updated Jun 24, 2026
49
Stars
13
Forks
14
Issues
0
Stars/day
Attention Score
74
Language breakdown
TypeScript 98.6%
JavaScript 0.7%
Makefile 0.7%
โ–ธ Files click to expand
README

eth-connect

NPM version codecov Install Size

eth-connect is a TypeScript-based web3 library alternative which implements the Generic JSON RPC spec as well.

You can follow the JavaScript API documentation until TypeScript docs are released.

Design goals

  • A Typed web3.js alternative
  • Have as few convention-invented functions as possible (by following the RPC specs as much as possible)
  • Leverage WS and HTTP providers
  • Portable (support and work equally in both browser and node)
  • Painless eth usage: Using contract factories, well-split event types (block, transaction and contracts plus topics)
  • async/await out of the box

Installation

Using NPM:

npm i eth-connect

Importing as a browser module:

Examples

Below are some simple illustrative examples. You can also find more complete examples are in the integration /tests folder.

Initialize with a provider

import { RequestManager } from 'eth-connect'

// using the injected MetaMask provider const requestManager = new RequestManager(web3.currentProvider)

const myBalance = await requestManager.eth_getBalance(myAddress)

or

import { RequestManager, HTTPProvider } from 'eth-connect'

const provider = 'my-own-RPC-url' const providerInstance = new HTTPProvider(provider) const requestManager = new RequestManager(providerInstance)

const someBalance = await requestManager.eth_getBalance(someAddress)

Initialize a contract

import { RequestManager, ContractFactory } from 'eth-connect'

const abi = require('./some-contract-abi.json') // using the injected MetaMask provider const requestManager = new RequestManager(web3.currentProvider)

const factory = new ContractFactory(requestManager, abi) const instance = await factory.at(address)

console.log('Calling a method', await instance.mint(myAddress))

Get the accounts

import { RequestManager } from 'eth-connect'

const requestManager = new RequestManager(web3.currentProvider)

const accounts = await requestManager.eth_accounts()

Build the project

Clone this project and run the following in the terminal:

make build

Run tests

make test-local

Comparison

| | web3 | eth-connect | | ------------------ | :------: | :-----------: | | Browser support | โœ” | โœ” | | Promise API | โœ– | โœ” | | Strict type checks | โœ– | โœ” | | TS/JS Docs | โœ– | โœ” | | Wiki Docs | โœ” | ? | | Coverage | ![][wc] | ![][ec] | | Dependents | ![][wdp] | ![][edp] | | Install size | ![][wis] | ![][eis] |

[wd]: https://img.shields.io/npm/dm/web3.svg [ed]: https://img.shields.io/npm/dm/eth-connect.svg

[wc]: https://coveralls.io/repos/ethereum/web3.js/badge.svg?branch=master [ec]: https://codecov.io/gh/decentraland/eth-connect/branch/master/graph/badge.svg

[wb]: https://travis-ci.org/ethereum/web3.js.svg [eb]: https://travis-ci.org/decentraland/eth-connect.svg?branch=master

[wdp]: https://badgen.net/npm/dependents/web3 [edp]: https://badgen.net/npm/dependents/eth-connect

[wis]: https://packagephobia.now.sh/badge?p=web3 [eis]: https://packagephobia.now.sh/badge?p=eth-connect

Full documentation

Follow this link to read the full documentation for eth-connect here.

Project Status

You may find issues while using this library, as it's still under development. Please report any issues you come accross.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท decentraland/eth-connect ยท Updated daily from GitHub