alchemy-web3
by
alchemyplatform

Description: Web3 client extended with Alchemy integration

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on April 3rd, 2022
Created on April 19th, 2019
Open Issues & Pull Requests: 18 (+0)
Number of forks: 63
Total Stargazers: 250 (+0)
Total Subscribers: 24 (+0)

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 949 days
Stale 30+ days: 5
Stale 90+ days: 4

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (2)
  • Wiz-remediation (1)
  • question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Alchemy Web3 is a TypeScript-based Web3 client library that extends the standard web3.js Ethereum API client with Alchemy API integration. The repository serves as a drop-in replacement for web3.js, designed to provide developers with minimal configuration overhead while accessing Alchemy's enhanced blockchain capabilities. As of July 2022, the repository entered maintenance mode, with the Alchemy team directing users toward a newer SDK based on ethers.js that offers feature parity along with improved typing, additional abstractions, and more comprehensive documentation. Updates to Alchemy Web3 are now made on a best-effort basis, with the team encouraging users to report bugs or feature requests through the GitHub issues section.

The library implements an intelligent routing system that determines where requests should be sent based on their nature. Most standard requests are routed through Alchemy's API infrastructure, while operations involving transaction signing and sending are automatically directed to browser-injected providers such as Metamask or Trust Wallet when available. This dual-provider approach allows developers to leverage Alchemy's performance and reliability for read operations while maintaining user control and security for write operations. Users can also specify custom providers for write operations if they prefer not to rely on browser-injected providers, with the library supporting providers that expose either sendAsync or send methods as specified in EIP 1193.

Alchemy Web3 includes several features designed to improve reliability and developer experience. The library automatically retries rate-limited requests with configurable behavior, including adjustable maximum retry attempts, retry intervals, and jitter to prevent thundering herd problems. The WebSocket implementation provides robust subscription handling that prevents permanent event loss during temporary network disconnections, with the system capable of recovering missed events from up to approximately 120 blocks of history. This represents a significant improvement over standard Web3 WebSocket behavior, which can result in permanently missed events during connection failures.

The library exposes Alchemy's proprietary APIs directly through the web3 client instance. The Transfers API enables developers to query asset transfers with extensive filtering options including block ranges, addresses, contract addresses, and transfer categories such as external, internal, token, ERC20, ERC721, and ERC1155 transfers. The Enhanced API provides methods like getTokenAllowance for querying token allowances between specific addresses. These higher-level abstractions reduce the complexity of accessing Alchemy-specific functionality compared to making raw API calls.

Installation is straightforward, supporting multiple distribution methods including npm and yarn package managers as well as CDN-based browser inclusion. The library requires an Alchemy account and API key for operation. Basic usage involves importing the createAlchemyWeb3 function and passing an Alchemy app URL along with optional configuration parameters. The library maintains full compatibility with the web3.js API surface, allowing developers to use familiar methods while benefiting from Alchemy's infrastructure.

GitGenius activity data indicates this repository maintains connections with major open-source projects including Microsoft's VSCode and TypeScript implementations as well as the Rust language repository through overlapping contributor networks. The repository is classified across multiple blockchain and Web3 development domains including Ethereum development, smart contract interaction, transaction monitoring, gas optimization, and dapp integration, reflecting its broad utility across the Web3 development ecosystem.

alchemy-web3
by
alchemyplatformalchemyplatform/alchemy-web3

Repository Details

Fetching additional details & charts...