Als je Ether (ETH) boven andere cryptocurrencies volgt, is het de moeite waard om Ethereum vanuit een meer technisch perspectief te begrijpen. Ethereum is een blockchain-protocol dat bekend staat om zijn toolkit, smart contracts en code-georiënteerd ecosysteem. Het leunt sterk op Ethers.js, een JavaScript-bibliotheek, om zijn ontwikkelaarsgerichte aanpak de nodige kracht te geven.
Hoewel ethers.js niet de enige Ethereum-native JavaScript-bibliotheek is, is het de betere keuze voor kleinere DApps. In deze gids gaan we dieper in op de verschillende aspecten van ethers.js, zodat je dit technische concept beter kunt begrijpen.
Ethers.js onder de loep
Ethers.js is een JavaScript bibliotheek, een set vooraf geschreven code die verschillende functies automatiseert. Het gebruik van JavaScript bibliotheken in de ontwikkeling vermindert de inspanning van het schrijven van code aanzienlijk. Dit maakt het proces gebruiksvriendelijker, en voor DApp ontwikkelaars biedt deze bibliotheek handige bundels met basis blockchain-specifieke functionaliteiten.

Hier is de GitHub-repository voor de bibliotheek.
Wat zijn JavaScript-bibliotheken?
Voordat we dieper ingaan op Ethers.js, laten we eerst kijken naar JavaScript-bibliotheken. Dit zijn vooraf geschreven sets van JavaScript-code die specifieke, veelvoorkomende taken automatiseren. Het gebruik van bibliotheken zoals Ethers.js kan het DApp-creatieproces versnellen en ook andere blockchain-specifieke interacties vereenvoudigen.
Waarom hebben we JavaScript-bibliotheken nodig op Ethereum?
Ethereum is geëvolueerd tot een gedecentraliseerd softwareontwikkelingsplatform. Van smart contracts tot DeFi-toepassingen en DApps, coderen speelt een cruciale rol in het Ethereum-ecosysteem. Daarom bestaan er op Ethereum afgestemde JavaScript-bibliotheken zoals Ethers.js. Deze bibliotheken stellen ontwikkelaars in staat om verbinding te maken met het netwerk, smart contracts te implementeren en ermee te communiceren, en eenvoudig blockchain-gegevens te beheren.
Wist je dat? Ethers.js niet de enige bekende Ethereum JavaScript-bibliotheek is. Een andere prominente is Web3.js, opgericht door de Ethereum Foundation. Web3.js staat bekend om zijn uitgebreide documentatie en is bedoeld voor de meer complexe DApps.
Waarom is ethers.js belangrijk?
Zoals eerder vermeld, is Ethers.js gericht op ontwikkelaars die werken met de Ethereum-blockchain. Deze bibliotheek, ontwikkeld door Richard Moore en op de markt gebracht onder de naam “Ethers”, is nuttig voor de volgende taken:
- Vereenvoudigen van verschillende Ethereum-transacties
- Biedt toegang tot uitgebreide documentatie en bronnen
- Faciliteren van DApp-ontwikkeling

Hier is een snel voorbeeld van de codefragment die wordt gebruikt om het huidige saldo van een Ethereum-account op te halen. Laten we eerst de code lezen en begrijpen hoe ethers.js het leven gemakkelijker maakt:
const { ethers } = require(‘ethers’);
// Connect to the Ethereum network
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);
// Specify the account address
const accountAddress = ‘0xABC123…’;
// Fetch and display the balance
provider.getBalance(accountAddress).then((balance) => {
// Convert the balance from Wei to Ether
const balanceInEther = ethers.utils.formatEther(balance);
console.log(`Balance: ${balanceInEther} ETH`);
});
In dit voorbeeld kun je duidelijk zien hoe het commando — ethers.providers.JsonRpcProvider — een Infura-endpoint aanroept, en getBalance haalt de balans op. Je hoeft niet direct om te gaan met Ethereum’s JSON RPC of de Remote Procedure Call. In dit geval kun je ethers.js zien als een vertaler die Ethereum eenvoudiger en vertrouwder voor je maakt.
Nog steeds niet zeker van het belang van ethers.js? Hier is een snelle vergelijking.
Denk aan Ethers.js als een oude bibliotheekkaart. Weet je nog dat die kaarten een catalogus hadden, waarmee je het juiste boek kon vinden door het gangpad en planknummer te lokaliseren? Dit is precies wat Ethers.js doet. Het vereenvoudigt en organiseert de enorme mogelijkheden van Ethereum, zodat ontwikkelaars precies kunnen vinden wat ze nodig hebben, zonder door een overvloed aan complexe details te moeten ploegen.
Alle Ethers.js-versies uitgelegd
Door de jaren heen zijn er verschillende versies van Ethers.js verschenen, elk met nieuwe functies of bugfixes. Het versiebeheer volgt de standaard semantiek, zoals v1.2.3, waarbij het eerste nummer de major versie aangeeft en de tweede en derde nummers de minor en patch aanduiden. We zullen ons nu alleen richten op de major versie-upgrades, veranderingen die mogelijk niet achterwaarts compatibel zijn.
- Versie 1.x (Legacy): Dit was de eerste release, gevolgd door functies met betrekking tot het ondertekenen van transacties, walletbeheer en meer.
- Versie 2.x (Ethers Wallet): Gericht op wallet-utilities en functies, inclusief veilige opslag van private keys.
- Versie 3.x (Ethers provider): Geïntroduceerde abstracties voor het verbinden met Ethereum-nodes. Verschillende soorten spelers werden ondersteund, waaronder Infura, WebSockets en meer.
- Versie 4.x (Ethers contract): Smart contract-geleide eigenschappen werden uitgebreid, met meer utilities voor het coderen en decoderen van data, eventfilters en meer.
- Versie 5.x: Biedt een modulaire architectuur, verbeterde ondersteuning voor ENS, uitgebreide foutafhandeling en meer.
- Versie 6.x: Inclusie van ES6-functies, introductie van BigInt, overbelastingsmogelijkheden en meer.

Je kunt meer details over elke versie vinden door de originele documentatie van Ethers.js te bekijken.
“Ethers.js blinkt uit in superieure blockchain-interoperabiliteit, native TypeScript-ondersteuning en geavanceerde debugging-tools. Het is een slanke, efficiënte bibliotheek die naadloos integreert met populaire frameworks zoals React, Vue, Angular, en meer.”
Redbelly Intern, Builder: X
Aan de slag met ethers.js
Voordat je de kracht van Ethers.js volledig kunt benutten, is het belangrijk om te begrijpen in welke fase van de DApp- of smart contract-ontwikkeling het wordt ingezet. Hier volgt een korte uitleg voor iedereen die deze concepten vanaf het begin willen begrijpen.
“Web3.js is gebruiksvriendelijker voor beginners en beknopter dan ethers.js.
Ethers.js daarentegen biedt meer opties en is nieuw; het is iets complexer dan Web3.js.”
degenBRo, blockchain-ontwikkelaar en oprichter van Solidity Finance: Zoals verteld aan BeInCrypto
Om te beginnen moet je eerst de computer openen en de ontwikkelomgeving instellen. Dit omvat Node.js en de Integrated Development Environment. Let op dat JavaScript meestal in de browser draait, maar met Node.js kan hetzelfde op de computer worden uitgevoerd. Het is de Node.js-runtimeomgeving die JavaScript-bibliotheken zoals ethers.js installeert.
Wat betreft de IDE, die een softwareontwikkelaar nodig heeft om te testen, kun je overwegen om VS Code, Sublime Text of iets anders te gebruiken.
Ethers.js-ondersteuning installeren
De volgende stap is het installeren van Ethers, de bibliotheek die ethers.js host.
npm install ethers
Vervolgens moet je Ethers gebruiken om verbinding te maken met de Ethereum-wallet, aangezien interactie met de blockchain deze stap vereist voor het valideren van inloggegevens. Je kunt hiervoor de geïnstalleerde Ethers-bibliotheek gebruiken. Hier is het voorbeeldcommando:
const { ethers } = require(‘ethers’);
// Connect to the MetaMask-wallet
const provider = new ethers.providers.Web3Provider(window.ethereum);
Als dat eenmaal is ingesteld, kun je de IDE gebruiken om Solidity-code te schrijven en smart contracts voor DApps te ontwikkelen. Ethers.js zal worden gebruikt om deze contracts te implementeren. Je kunt zelfs je DApp of smart contract lokaal testen met omgevingen zoals Truffle en Hardhat. Nadat je het contract hebt getest, gebruik je Ethers.js om het op het Ethereum-netwerk te implementeren.
const contract = new ethers.ContractFactory(abi, bytecode, signer);
const deployedContract = await contract.deploy();
Voor degenen die het niet weten, zijn ABI, Bytecode en Signer essentiële termen voor een soepele smart contract-ontwikkeling. ABI, of de Application Binary Interface, fungeert als het label dat het netwerk helpt je smart contracts te herkennen. Bytecode is de gecompileerde, netwerkklare versie van het smart contract, en de Signer is de entiteit die de handtekeningen genereert voor transacties en interacties met het contract.
Ethers.js voor de front-end
Zodra het smart contract is geïmplementeerd, moet je de front-end of de gebruikersinterface van de DApp bouwen. Hiervoor kun je Angular of React gebruiken. Je kunt zelfs Ethers.js integreren binnen de front-end om ervoor te zorgen dat het kan communiceren met Ethereum smart contracts. Hier is de voorbeeldcode daarvoor:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());
Hierna moet je de DApp testen op een testnet, zoals Rinkeby of Ropsten. Zodra je tevreden bent, kun je de DApp op het mainnet lanceren. Let op hoe vaak je tijdens het proces moet communiceren met Ethers of ethers.js.
Kernfuncties
Ethers.js komt naar voren als een uitgebreide Ethereum-bibliotheek. Hier zijn enkele van de exclusieve aanbiedingen die het leven van ontwikkelaars gemakkelijker kunnen maken:
Providers
Ethers.js providers fungeren als bruggen tussen het Ethereum-netwerk en de DApp waaraan je werkt. Dit houdt in dat het eenvoudiger wordt om blockchain data op te vragen en helpt ook bij het uitzenden van transacties. Infura is een van de providers die Ethers.js gebruikt.
Hier is de voorbeeldcode hiervoor:
const { ethers } = require(‘ethers’);
// Connect using Infura
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
// Check the current block number
provider.getBlockNumber().then((blockNumber) => {
console.log(“Current block number:”, blockNumber);
});
Wallets
Ethers.js laat je wallets beheren, waardoor je nieuwe accounts kunt aanmaken, bestaande accounts kunt importeren, privésleutels veilig kunt beheren voor het ondertekenen van transacties, en meer.
Contracten
Dit onderdeel van het bestaan van Ethers.js ondersteunt objectinstantiatie. Dit maakt het eenvoudiger om specifieke contractfuncties aan te roepen, meer zoals native Javascript-methoden.

ENS-integratie
Ethers.js kan ENS-namen omzetten naar hun Ethereum-adressen en andersom. Deze functie vermindert het risico op fouten.
Hier is een voorbeeldcodefragment hiervoor:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
const ensName = ‘alice.eth’;
provider.resolveName(ensName).then((address) => {
console.log(`${ensName} is resolved to ${address}`);
});
Naast de genoemde functies, heeft Ethers.js ook de volgende aspecten of functies, die ontwikkelaars helpen met directe toegang tot Ethereum-specifieke zaken:
- Signers
- Toepassingen
- Event-listeners en filters (bedoeld voor het activeren van real-time reacties op blockchain-acties)
- Transacties
- Multicall-ondersteuning
- TypeScript-ondersteuning (bedoeld voor het verbeteren van de betrouwbaarheid van de code en de algehele ontwikkelaarservaring)
Enkele voordelen van het gebruik van Ethers.js:
Hoe crypto nieuws-publicaties Ethers.js kunnen benutten
Mediapublicaties zoals BeInCrypto kunnen Ethers.js gebruiken om geavanceerde Web3-tools vanaf nul te creëren. Hierdoor wordt het mogelijk om Ethereum-gestuurde functies in te zetten en de bruikbaarheid te verbeteren. Hier zijn enkele opties die men kan overwegen:
Datafeeds
Ethers.js-functies kunnen worden gebruikt om realtime crypto-datafeeds te integreren, zoals netwerkstatistieken, gas fees en meer, om artikelen en bronnen up-to-date te houden. Hier is een voorbeeldcode om het laatste bloknummer op te halen, bijvoorbeeld voor Ethereum, om halveringen in realtime te volgen:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
provider.getBlockNumber().then((blockNumber) => {
console.log(“Current block number:”, blockNumber);
// Integrate this data into your publication’s platform for a real-time data feed
});
Interactieve content
Publicaties kunnen interactieve inhoud creëren, waardoor gebruikers direct kunnen communiceren met smart contracts, deelnemen aan polls of zelfs kleine spelletjes spelen indien nodig.
Hier is een voorbeeldcode om een mijlpaal-specifieke begroeting van een smart contract op te halen:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contractAddress = ‘0x…’;
const contractABI = [
“function getGreeting() view returns (string)”
];
const contract = new ethers.Contract(contractAddress, contractABI, provider);
async function displayGreeting() {
const greeting = await contract.getGreeting();
document.getElementById(‘greeting’).innerText = greeting;
}
Een praktijkvoorbeeld van hoe Ethers.js wordt ingezet:
Gedecentraliseerde publicatie
Media publicaties kunnen ook overwegen om gedecentraliseerd te publiceren, waarbij een deel van een artikel op het blockchain-netwerk wordt gepubliceerd. Dit kan helpen bij censuurbestendigheid en zelfs de integriteit van de inhoud waarborgen.
Hier is een voorbeeldcode waarin de artikelhash online wordt opgeslagen als bewijs van publicatie:
const { ethers } = require(‘ethers’);
const wallet = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provider);
const contentHash = ethers.utils.id(“Article content here”);
const tx = await wallet.sendTransaction({
to: ‘0xSomeStorageContractAddress’,
data: contentHash // Assuming the contract accepts and stores this data
});
console.log(“Transaction hash (proof of publication):”, tx.hash);
Dit zijn slechts enkele toepassingen voor mediapublicaties. Maar er zijn andere sectoren die de kracht van ethers.js kunnen benutten. Deze omvatten:
- Blockchain-ontwikkelaars (verwacht)
- Financiële analisten die werken met DeFi-metrieken
- Game-ontwikkelaars
- Contentmakers
- Supply chain-managers
En meer.
Real-world toepassingen van Ethers.js
Naast het nut in DeFi-, NFT- en gaming-projecten, zijn er enkele bestaande DApps die het gebruik van Ethers.js ondersteunen. Deze omvatten de volgende:
- Uniswap: Ether.js werkt samen met de inherente smart contracts van Uniswap voor het uitvoeren van transacties, het toevoegen van liquiditeit en zelfs het opvragen van poolstatistieken. In dit geval zijn DApp-ontwikkelaars van plan om tools te bouwen die samenwerken met Uniswap, zoals trading bots, portfolio management-tools en meer.
- Aave: DApp-ontwikkelaars en andere geïnteresseerden kunnen de functionaliteiten van Ether.js benutten om te communiceren met Aave-specifieke smart contracts. Op deze manier kunnen ze de front-end voorbereiden voor het lenen van assets, het storten van onderpand en meer.
Een paar Ethers.js-mythes ontkrachten:
Beveiligingsoverwegingen
Het gebruik van Ethers.js brengt een vrij uitgebreide set van beveiligingsoverwegingen met zich mee. Hier zijn er een paar om te volgen:
- Het is raadzaam om geen privésleutels hardcoded in de codebase van je applicatie op te nemen.
- Elke interactie met smart contracts moet voorafgegaan worden door testen en uitgebreide audits van de contracts.
- Wanneer je met smart contracts werkt, gebruik dan veilige patronen zoals “call” voor alleen-lezen taken.
- Voor het optimaliseren van ethers.js-gebruik kun je overwegen om verzoeken te batchen. Dit is waar je bijvoorbeeld alleen-lezen verzoeken kunt groeperen om het aantal netwerkoproepen te minimaliseren. Het spreekt voor zich dat deze optimalisatietechnieken de applicatie zeer schaalbaar en kostenefficiënt kunnen maken.
Hier is een voorbeeld van hoe het werkt:
// Pseudocode for batching contract calls with Ethers.js (conceptual example)
const contract = new ethers.Contract(address, abi, provider);
const [value1, value2, value3] = await Promise.all([
contract.viewFunction1(),
contract.viewFunction2(),
contract.viewFunction3()
]);
Ethers.js: een veelzijdige tool
Zoals aangetoond in deze gids, is Ethers.js een veelzijdig hulpmiddel. Hoewel we een snelle blik hebben geworpen op de mogelijkheden, is de beste manier om Ethers.js volledig te begrijpen door dieper in de wereld van smart contracts, JavaScript, IDE’s, DApps en meer te duiken. Daarnaast kan het waardevol zijn om lid te worden van de Ethereum- en Ethers-gemeenschappen.
Veelgestelde vragen
Is Ethers.js veilig?
Hoe kunnen ontwikkelaars Ethers.js-evenementen gebruiken?
Wat zijn de belangrijkste hulpmiddelen die Ethers.js biedt?
Wat is het verschil tussen Ethers.js en Web3.js?
Disclaimer
Alle informatie op onze website wordt te goeder trouw en uitsluitend voor algemene informatiedoeleinden gepubliceerd. Elke actie die de lezer onderneemt op basis van de informatie op onze website is strikt op eigen risico.
