HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
web3
web3.js
TypeScript2017–2023
web3 / web3.js · Archived

web3.js

Collection of comprehensive TypeScript libraries for Interaction with the Ethereum JSON RPC API and utility functions.

12Distinct people
18Mentions
1Explicit recommenders
19.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Collection of comprehensive TypeScript libraries for Interaction with the Ethereum JSON RPC API and utility functions.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Right; probably because most of the obj-c compiler toolchain was implemented when computers were slower. I was beating on xcode in my comment because it deserves it, but this…

josephg used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year18 dated mentions

Observed mentions: 2017-10-03 07:01:55 UTC to 2023-01-05 04:02:45 UTC.

02468102017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC211
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC10010
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC312
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101

What Hacker News says

18 sources
sure, if thats a serious curiosity, the best analog to that would be web3.js API docs, which is for Ethereum Virtual Machines (EVM). It was made for the main EVM called Ethereum, but other EVMs use this as well, things can be slightly different on other EVMs https://github.com/ChainSafe/web3.js https://web3js.readthedocs.io/en/v1.7.1/ The web3 concept extends beyond EVMs, as the term has mostly begin meaning “connect to nearest nodes instead of your own backend server” and so other distributed networks have their own equivalent but not typically with the web3.js library, but some other way to communicate with the nodes via RPC You can get grants to contribute to development for making libraries like web3 (but thats probably the least lucrative thing to do) The more lucrative thing would be to contract with projects that need their fronten
Read the rest
ds built, or smart contracts deployed to these nodes (that the frontend interacts with)
In Is the U.S. Descending into Recession?
The best examples right now are honestly NFT marketplaces or DeFi, however you can authenticate with these services without needing to have any funds available on your wallet. If you're curious and want to try out the flow, you can download a web3 wallet like MetaMask - https://metamask.io/ - this is a popular web wallet extension for Ethereum and EVM platforms. If you want to try out Solana, I recommend https://phantom.app/ I personally like Solana more than EVM chains at the moment but it doesn't cost anything for you to try either. Once you have the extension and create your wallet, you can navigate to an NFT marketplace, and connect your wallet. Ethereum: https://opensea.io/ - The most popular Ethereum NFT marketplace Solana: https://solanart.io/ - One of the most popular Solana NFT marketplaces You can then click on the connect / sel
Read the rest
ect wallet button, and it will allow for you to connect your wallet to the website. This will authenticate you into their website, there's some additional steps on Opensea IIRC if you want to construct a full profile, but the base authentication only requires this. And like I mentioned, you can authenticate in this manner without owning a single dollar worth of crypto. For the projects that allow for you to interface with chains / wallets, I've used these: For ethereum: https://github.com/ChainSafe/web3.js For solana: https://github.com/solana-labs/solana-web3.js Essentially what it comes down to is a user has a wallet, that is typically a web wallet via extension, but you can of course use hardware wallets if you'd like, however those do require you to own one, so if you just want to play around with the ecosystem, these extensions are the easiest to use. These above projects are javascript APIs that allow for interacting with wallets and onchain programs. Note that both of these are frontend solutions. There are backend solutions for both chains. EDIT - also there is this provided from solana labs as an adapter for many different wallet types: https://github.com/solana-labs/wallet-adapter
In That's My Ape - A blockchain-free chain of custody tool
one path: Solidity+web3js steps: 1. create a MetaMask wallet and and add funds to it with your friendly neighborhood Bitcoin ATM (they do ETH too). 2. learn the Ethereum stack on eth.build and create a program in the language known as Solidity. 3. create a javascript app that talks to your Solidity contract, using the open-source javascript library web3js. 4. People with wallets installed as Chrome extensions can then navigate to your web3.js app (which can be hosted on a regular webserver), and send funds to/otherwise engage with your contract. https://metamask.io https://eth.build https://github.com/ChainSafe/web3.js
In What is Web3? Interview with Gavin Wood, who coined the term in 2014
No it hasn't. Web3 hasn't gotten smaller. In the last year its gotten even worse. Its now nearly 3x as big as it was 4 years ago, when I first complained about it being slow and bloated. I re-ran some tests to check after reading your comment, and compared to last year web3 has regressed in every measure I took: - node_modules size: 59mb (was 53mb last year) - Non-minified bundle size: 3.2mb (was 2.4mb last year) - Minified bundle size: 1.85mb (was 1.15mb last year) - Number of copies of bn.js included in the bundle: 8 (was 6) The minified+gzipped size has increased by 88% in the last 12 months alone. Full details in the issue: https://github.com/ChainSafe/web3.js/issues/1178#issuecommen...
In Crypto wallet security as seen by security engineers
A few years ago I played around with Metamask - which is a popular browser extension which lets you use ether and ERC20 tokens on websites. Pretty soon afterwards I realised my browser just felt slow, so I looked into what was going on. Turns out metamask pulls in web3.js, which alone is 2.3mb of javascript. Simply parsing that much code in each chrome tab was taking hundreds of milliseconds per page load. Web3.js is so ineptly crafted. Some of its dependencies get bundled a lot of times at slightly different point releases, for no forseeable reason. I opened an issue about this years ago, and despite lots of attention and promises it still hasn't been fixed[1]. The bigger issue with metamask is that (at least at the time) it allowed any site you visit to silently query your crypto wallet address. Talk about a privacy invasion. Every webs
Read the rest
ite you visit gets an ID that I'll keep across all my devices, through which you can find out exactly how much money I have, in what cryptocurrencies. And they can use that to track my purchases. Forever. I raised this with the developers and they said "oh yeah we know about that and we'll fix it later". (Edit: sounds like this security problem was eventually fixed months or years later.) What on earth? People want to build the future of the web on this junk pile? Holy cow this is a house of cards. [1] https://github.com/ChainSafe/web3.js/issues/1178
In Crypto wallet security as seen by security engineers
> but they don't realize how hard it is to build these systems correctly. In this case, it sounds like the SSNs were included in their entirety in the HTML. My first response is that its a stupid and obvious mistake, but I think it might be too suspiciously easy to only blame the developers here. I think we have a larger problem - which is that there's a hidden cost to adding extra layers of magic to software. And on the web, we seem to just not be able to help ourselves. The cost is that developers often skip actually understanding how the new layers work. And the abstractions are leaky with respect to performance and security, and sometimes functionality. Its easy to imagine how this bug slipped through. They had a database query which fetched the data for rendering. Then they used some "magic" framework which does server side rendering
Read the rest
& hydration. So the server sent the JSON it used to render to the client to dehydrate the page, and that JSON happened to include the raw database rows (with SSNs). The system is magic enough so you don't have to understand how that process works; but not magic enough to protect you from the consequences. Junior devs use the magic anyway and get stuck, or make mistakes like this. Senior devs feel like we have to learn everything and get overwhelmed. Other examples of this: - Recently I wanted to use some rust code (compiled to wasm via wasm-pack) in a svelte project with snowpack or rollup. I know how to include wasm in a webpage, but the bundlers needed special plugins to handle this. And the plugins for wasm are halfbaked, poorly maintained and janky. - I worked with a team a few years ago who was using some graphql wrapper around contentful. (Before contentful had an official graphql endpoint). The wrapper was very good, but we needed to run some queries that weren't supported by the wrapper. This was close to impossible. Nobody on the team was strong enough to read the graphql code to figure out how to solve our problem. I did it eventually - via some custom endpoints. But I shouldn't have. After I left the team had no idea how to maintain or modify the code I wrote, and they were entirely stuck. - The "web obesity crisis" comes from projects pulling giant amounts of javascript into their webpages. Our tooling makes this easy (npm install) and safe (incompatible versions of the same package are included separately). So its easy to end up with libraries like web3, which include about a dozen different versions of bn.js resulting in 2.3mb of uncompressed JS which takes nearly a second to parse on a modern computer. - [1] https://github.com/ChainSafe/web3.js/issues/1178 I don't know what the answer here is, but I know when I was writing qbasic as a kid it wasn't like this. Maybe we need to stop going "up the stack", and instead go sideways - throwing things out as we add more. I worry this whole problem will get much worse before it gets any better.
In Governor vows criminal prosecution of reporter who found flaw in state website
edit: Sorry, I think I misread your question. My current ongoing project is not yet public but will be unveiled and live in a few weeks, the others were entries into hackathons for proofs of concept, but I don't have those live. I'll leave the rest of my message (targetted for dev resources in general) below in case you or anyone else finds it helpful. The only way I can recommend getting started is the way that I did a few months back - I strongly encourage checking out and entering random hackathons! https://gitcoin.co/hackathons There's a lot going on in the space currently - many projects are trying to attract development talent so they will sponsor / participate in hackathons. imo they're fantastic opportunities to learn something new and potentially win some extra money. I'd probably recommend ethereum as a first ecosystem to really
Read the rest
dive into - the tooling is more mature than other dev-centric blockchains. However, keep in mind that ethereum as a base can be a tricky place to launch your app because of high transactional fees, and you would likely want to integrate a layer 2 like Arbitrum or support alternative coins in a final application. I'll link some pages to a few technologies I used when building some ethereum dapps https://www.trufflesuite.com/truffle https://www.trufflesuite.com/ganache for wallet integration, either of these work https://github.com/ChainSafe/web3.js https://github.com/ethers-io/ethers.js I highly recommend checking out The Graph too - it allows for you to leverage graphQL on your smart contract data by creating a dedicated subgraph. With some careful integration, you can replace a dedicated backend that would normally be required for various APIs with this. It's a very exciting project imo. https://thegraph.com/en/ And of course, the solidity documentation is very helpful. Coming from a scripting heavy background, solidity was very easy for me to pick up and write a simple escrow service. https://docs.soliditylang.org/en/v0.8.9/ I'd also recommend checking out other chains once you become more comfortable with the system. I'm currently working on Solana and it's a bit more difficult to work with due to the tooling not being as mature, but it is a very interesting chain to work with and I hope that it can scale better than Ethereum has.
In Web3 architecture and how it compares to traditional web apps
Try disabling all your browser extensions and see if the problem persists. It’s amazing to me how inefficiently a lot of browser extensions are written - eg last I checked, metamask pulls in web3, which is a clown car of javascript that takes hundreds of milliseconds to parse. That code needs to be parsed every time you navigate to a new website. You might not notice a single extension like that, but with a few bad extensions it’s easy for your browser to slow to a crawl. The obvious response is to blame the browser for stuff like this, but it’s usually the extensions that are causing your problems. [1] https://github.com/ChainSafe/web3.js/issues/1178
In Digging for performance gold: finding hidden performance wins
> I have a similarly bad opinion on the average JavaScript developer I write a lot of javascript for a living, and you're not wrong[1]. I think the struggle javascript has is that an extremely high percentage of javascript programmers are pretty new to programming in general. So there's an awful lot of javascript code written by unsteady hands. If javascript is a magnet for novices, java feels like a magnet language for middle aged with kids "programming is just a job for me" indifference. I feel contempt for that mindset - but to respond in kind to your apology, I think the contempt I feel is probably reflected fear / disgust at the idea of settling. To me programming still feels like casting magic spells. I think I'm terrified of that spark some day being extinguished. [1] I check in on this issue every year or so and it never fails to
Read the rest
delight and horrify in equal measure: https://github.com/ChainSafe/web3.js/issues/1178
In Rust is a hard way to make a web API
josephg·Dec 24, 2020Recommendation phrase
Right; probably because most of the obj-c compiler toolchain was implemented when computers were slower. I was beating on xcode in my comment because it deserves it, but this problem isn't confined to xcode and swift. Compiling rust is also extremely slow. The new reddit feels like a slideshow (and despite launching years ago, how have the reddit team still not fixed the performance problems??) We're having this conversation in the context of notion. Starting up Notion on my laptop feels like wading through honey. I really want to love notion, but every time I open it and try to do anything I find my motivation tricking away. Notion isn't even doing anything impressive with all that compute - its just slow. The sales pitch I make in my head for notion is that its a place to organize all my notes and workflows, but like Jira, living in not
Read the rest
ion means accepting that I work at the speed notion does, and that feels antithetical to the feeling of productivity I have in snappier, lighter tools like Bear and iA writer. But Notion and XCode aren't really the problem. The problem is cultural. It seems to be the worst in the web ecosystem, though its not confined there. My favorite example of all is this issue in web3.js[1]. I can't help but play Benny Hill music in my head while I scroll through this 3 year old, apparently unsolvable issue thread. When the new M1 macs came out lots of people were complaining that there's no 32 gig variant. Holy cow that is so many bytes. The Atari 2600 had 128 bytes of ram. The NES ran super mario bros in 2kb. Its completely ridiculous to me that our software can even fill 16gb doing everyday computing. Is there a ceiling? Will there ever be a ceiling, or should we expect a document editor in 2030 to sit on 256gb of ram, just because thats how much ram modern javascript frameworks use by then? [1] https://github.com/ethereum/web3.js/issues/1178#issuecomment...
In UX Issues with Notion

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.