alcuadrado / ethereum-org-website

Ethereum.org is a primary online resource for the Ethereum community.

Home Page:https://ethereum.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Netlify Status All Contributors Discord Twitter Follow Crowdin

ethereum logo

πŸ‘‹ Welcome to ethereum.org!

This is the repo for the ethereum.org website, a resource for the Ethereum community. The purpose of the site is to β€œBe the best portal to Ethereum for our growing global community" - read more about what this means here.

ethereum.org is improved and changed over time through the contributions of community members who submit content, give feedback, or volunteer their time to managing its evolution. If you’re interested in helping to improve ethereum.org, find out how to contribute.

Looking for the Ethereum blockchain's code?

If you're looking for the Ethereum blockchain itself, there is no single repo. Instead, Ethereum has multiple implementations of the protocol written in different programming languages for security and diversity. Check out the different implementations


How to contribute

This project follows the all-contributors specification. Contributions of any kind welcome!

How updates are made to ethereum.org:

Submit an issue

Fork the repository (repo)

Set up your local environment (optional)

If you're ready to contribute and create your PR, it will help to set up a local environment so you can see your changes.

  1. Set up your development environment

  2. Clone your fork

If this is your first time forking our repo, this is all you need to do for this step:

$ git clone git@github.com:[your_github_handle]/ethereum-org-website.git && cd ethereum-org-website

If you've already forked the repo, you'll want to ensure your fork is configured and that it's up to date. This will save you the headache of potential merge conflicts.

To configure your fork:

$ git remote add upstream https://github.com/ethereum/ethereum-org-website.git

To sync your fork with the latest changes:

$ git checkout dev
$ git fetch upstream
$ git merge upstream/dev
  1. Install dependencies
$ yarn
  1. Add personal GitHub API token (free)

We recommend setting this up when running the project locally, as we use the GitHub API to fetch repository data for many projects & files.

  • Follow these instructions to create a personal GitHub API token
    • When selecting scopes in step 8, leave everything unchecked (the data we fetch doesn't require any scope)
  • In local repo root directory: Make a copy of .env.example and name it .env
  • Copy & paste your new GitHub API token into .env
// .env Example:
GATSBY_GITHUB_TOKEN_READ_ONLY=48f84de812090000demo00000000697cf6e6a059
  1. Add Etherscan API token (free)
  • Create an account on Etherscan
  • Navigate to your Account Settings page
  • In the sidebar, click on 'API-KEYs' and add a new token
  • Copy & paste your Api-Key Token from Etherscan into .env
// .env Example:
ETHERSCAN_API_KEY=K6NUTARFJZJCIXHF1F1E1YGJZ8RQ29BE4U
  1. Add DeFiPulse API token (free)
  • Follow this guide to create an account and get your DeFiPulse API token
  • Copy & paste your Active API Key from DeFiPulse into .env
// .env Example:
DEFI_PULSE_API_KEY=4953aaf7966dad9c129397e197a0630ed0594f66962dd5fb058972b250da

Make awesome changes!

  1. Create new branch for your changes
$ git checkout -b new_branch_name
  1. Start developing!
$ yarn start
  • Open this directory in your favorite text editor / IDE, and see your changes live by visiting localhost:8000 from your browser
  • Pro Tip: Explore scripts within package.json for more build options
  1. Commit and prepare for pull request (PR). In your PR commit message, reference the issue it resolves (see how to link a commit message to an issue using a keyword).
$ git commit -m "brief description of changes [Fixes #1234]"
  1. Push to your GitHub account
$ git push

Submit your PR

  • After your changes are committed to your GitHub fork, submit a pull request (PR) to the dev branch of the ethereum/ethereum-org-website repo
  • In your PR description, reference the issue it resolves (see linking a pull request to an issue using a keyword)
    • ex. Updates out of date content [Fixes #1234]
  • Netlify (our hosting service) deploys all PRs to a publicly accessible preview URL, e.g.: Netlify deploy preview
  • Confirm your Netlify preview deploy looks & functions as expected
  • Why not say hi and draw attention to your PR in our discord server?

Wait for review

Release

  • master is continually synced to Netlify and will automatically deploy new commits to ethereum.org
  • The website team will periodically merge dev into master (typically multiple times per week)
  • You can view the history of releases, which include PR highlights

Translation Program

The Translation Program is an initiative to translate ethereum.org into different languages and make the website accessible to people from all over the world.

If you are looking to get involved as a translator, you can join our project in Crowdin and start translating the website to your language immediately.

To get more information about the program, learn how to use Crowdin, check on the progress or find some useful tools for translators, please visit the Translation Program page.


The ethereum.org website stack

Code structure

Folder Primary use
/src Main source folder for development
/src/assets Image assets
/src/components React components that do not function as stand alone pages
/src/content Markdown/MDX files for site content stored here.
For example: ethereum.org/en/about/ is built from src/content/about/index.md
The markdown files are parsed and rendered by src/templates/static.js*
/src/content/developers/docs *Markdown files in here use the Docs template: src/templates/docs.js
/src/content/developers/tutorials *Markdown files in here use the Tutorial template: src/templates/tutorial.js
/src/data General data files importable by components
/src/hooks Custom React hooks
/src/intl Language translation JSON files
/src/lambda Lambda function scripts for API calls
/src/pages
/src/pages-conditional
React components that function as stand alone pages.
For example: ethereum.org/en/wallets/find-wallet is built from src/pages/wallets/find-wallet.js
/src/scripts
/src/utils
Custom utility scripts
/src/styles Stores layout.css which contains root level css styling
/src/templates JSX templates that define layouts of different regions of the site
/src/theme.js Declares site color themes, breakpoints and other constants (try to utilize these colors first)

Website conventions / best practices

❗️ Translation initiative

Please read carefully if adding or altering any written language content

How to prepare your content for translation depends on whether you're working on a simple Markdown/MDX page or a React component page.

- MDX pages (/src/content/page/)

Markdown will be translated as whole pages of content, so no specific action is required. Simply create a new folder within /src/content/ with the name of the page, then place index markdown file (ie. index.md) within new folder.

- React component page

  • English text should be placed into /src/intl/en/page-CORRESPONDING-PAGE.json

  • Crowdin is the platform we use to manage & crowdsource translation efforts. Please use the following conventions to help streamline this process.

  • Use kebab casing (utilizing-dashes-between-words) for file names and JSON keys

  • Use standard sentence casing for entry values

    • If capitalization styling required, it is preferable to style with CSS
      • Do this:
          JSON `"page-warning": "Be very careful"`
          CSS `text-transform: uppercase`
        
      • Not this:
          JSON `"page-warning": "BE VERY CAREFUL"`
        
    • This minimizes issues during translation, and allows consistent styling to all languages
  • Please avoid embedding links within a sentence. For a word/phrase to be a link, it requires a key/string in the intl JSON. If this is in the middle of another sentence, this results in the sentence being broken into multiple pieces, and requires coding the sentence structure into the JavaScript.

    • This results in significant challenges during translation process, as written syntax for each language will very in terms of ordering subjects/verbs/etc.
    • If you're wanting to link to something within your sentence, create a link at the end of the sentence or paragraph:
    <p>All Ethereum transactions require a fee, known as Gas, that gets paid to the miner. <Link to="link">More on Gas</Link></p>
    

    Once, you've added your English content to the appropriate JSON file, the above code should look something more like:

     <p><Translation id="page-transactions" />{" "}<Link to="link"><Translation id="page-transactions-gas-link" /></Link></p>
    
    • tl;dr Each individual JSON entry should be a complete phrase by itself
  • This is done using the Translation component. However there is an alternative method for regular JS: gatsby-plugin-intl with /src/utils/translations.js

    • Method one: <Translation /> component (preferred if only needed in JSX)

      import { Translation } from "src/components/Translation"
      
      // Utilize in JSX using
      <Translation id="language-json-key" />
      
    • Method two: translateMessageId()

      import { useIntl } from "gatsby-plugin-intl"
      import { translateMessageId } from "src/utils/translations"
      
      // Utilize anywhere in JS using
      const intl = useIntl()
      translateMessageId("language-json-key", intl)
      
      const siteTitle = translateMessageId("site-title", intl)
      

React Hooks

  • Components and pages are written using arrow function syntax with React hooks in lieu of using class-based components
// Example
import React, { useState, useEffect } from 'react'

const ComponentName = props => {
  // useState hook for managing state variables
  const [greeting, setGreeting] = useState('')

  useEffect(() => {
    // useEffect hook for handling component lifecycle
    setGreeting('Hello world')
  }, [])

  return <div>{greeting}</div>
};

export default ComponentName;

Styling

  • src/theme.js - Declares site color themes, breakpoints and other constants (try to utilize these colors first)

  • We use styled-components

    • Tagged template literals are used to style custom components
    // Example of styling syntax using styled-components
    
    import styled from "styled-components"
    
    const GenericButton = styled.div`
      width: 200px;
      height: 50px;
    `
    const PrimaryButton = styled(GenericButton)`
      background: blue;
    `
    const SecondaryButton = styled(GenericButton)`
      background: red;
    `
    
    // These are each components, capitalized by convention, and can be used within JSX code
    // ie: <PrimaryButton>Text</PrimaryButton>
    
    • Recommended VS Code Plugin: vscode-styled-components
      To install: Open VS Code > Ctrl+P / Cmd+P > Run:
      ext install vscode-styled-components
  • Values from src/theme.js are automatically passed as a prop object to styled components

    // Example of theme.js usage
    
    import styled from "styled-components"
    
    const Container = styled.div`
      background: ${(props) => props.theme.colors.background};
      @media (max-width: ${(props) => props.theme.breakpoints.s}) {
        font-size: #{(props) => props.theme.fontSized.s};
      }
    `
    
  • Framer Motion - An open source and production-ready motion library for React on the web, used for our animated designs

  • Emojis: We use Twemoji, an open-source emoji set created by Twitter. These are hosted by us, and used to provide a consistent experience across operating systems.

// Example of emoji use
import Emoji from "./Emoji"

// Within JSX:
<Emoji text=":star:" size={1} /> // sized in `em`
  • Icons: We use React Icons
    • src/components/Icon.js is the component used to import icons to be used
    • If an icon you want to use is not listed you will need to add it to this file

src/components/Icon.js:

// Example of how to add new icon not listed
import { ZzIconName } from "react-icons/zz"

// Then add to IconContect.Provider children:
{name === "alias" && <ZzIconName />}

From React component:

// Example of icon use
import Icon from "./Icon"

// Within JSX:
<Icon name="alias" />

Image loading and API calls using GraphQL

  • Gatsby + GraphQL used for loading of images and preferred for API calls (in lieu of REST, if possible/practical). Utilizes static page queries that run at build time, not at run time, optimizing performance.
  • Image loading example:
import { graphql } from "gatsby"

export const query = graphql`
  query {
    hero: file(relativePath: { eq: "developers-eth-blocks.png" }) {
      childImageSharp {
        fluid(maxWidth: 800) {
          ...GatsbyImageSharpFluid
        }
      }
    }
  }
`
// These query results get passed as an object `props.data` to your component
  • API call example:
import { graphql } from "gatsby"

export const repoInfo = graphql`
  fragment repoInfo on GitHub_Repository {
    stargazerCount
    languages(orderBy: { field: SIZE, direction: DESC }, first: 2) {
      nodes {
        name
      }
    }
    url
  }
`
export const query = graphql`
  query {
    hardhatGitHub: github {
      repository(owner: "nomiclabs", name: "hardhat") {
        ...repoInfo
      }
    }
  }
`
// These query results get passed as an object `props.data` to your component

POAP Logo

Claim your POAP!

What is POAP?

The Proof of Attendance Protocol is a dapp that distributes badges in the form of ERC-721 tokens to prove you participated in an event. More on POAPs.

ethereum.org 2021 Contributor POAP

  • If you have committed any changes in 2021 so far that were merged into our repo, you have a POAP waiting!

  • This includes our dedicated translators on Crowdin

    Discord

  • πŸ‘† To claim your Contributor POAP, join our Discord server and paste a link to your contribution in the #poaps-πŸ† channel

  • A member of our team will verify the request and DM you with a personalized link to claim your own freshly minted POAP collectible!

  • To help with verification we request GitHub contributors connect their GitHub account with their Discord account (Discord > Settings > Connections > GitHub). Crowdin contributors will be verified directly through Crowdin by our team.

  • If you haven't contributed yet and would like to earn a POAP to show your loyalty to the Ethereum space, head over to the issues tab to get started!


Contributors

Thanks goes to these wonderful people (emoji key):


ExodusActual

🌍

Anna KarpiΕ„ska

🌍

8bitp

πŸ–‹

Rousos Alexandros

πŸ–‹

EvanVanNessEth

πŸ–‹

JesseAbram

πŸ–‹

Lililashka

🎨 πŸ›

vrde

πŸ–‹

Richard McSorley

πŸ’»

Alejandro Santander

πŸ–‹

Jason Carver

πŸ–‹

Chaitanya Potti

πŸ–‹

chriseth

πŸ–‹ πŸ‘€

Craig Williams

πŸ–‹

Damian Rusinek

πŸ–‹

Danny Ryan

πŸ–‹ πŸ‘€

Franco Zeoli

πŸ–‹ πŸ‘€

Guy Lando

πŸ–‹

James Connolly

πŸ–‹

Jacob Burden

πŸ–‹

joshorig

πŸ–‹

mariapaulafn

πŸ–‹

MartΓ­n

πŸ–‹

Mattias Nystrom

πŸ–‹

nabetse

πŸ–‹

Nick Savers

πŸ–‹

Nina Breznik

πŸ–‹

Ven Gist

πŸ–‹

Paul Fletcher-Hill

πŸ–‹

Phil

πŸ–‹

RΓ©mi PrΓ©vost

πŸ–‹

Shane

πŸ–‹

Andrey Petrov

πŸ–‹ πŸ€” ️️️️♿️

Santiago Palladino

πŸ–‹ πŸ€”

Tim Beiko

πŸ–‹ πŸ‘€

Wanseob Lim

πŸ–‹ 🌍

Wil Barnes

πŸ–‹

Aniket

πŸ–‹

Chris Chinchilla

πŸ–‹

George Spasov

πŸ–‹

Pierrick TURELIER

πŸ’»

Solexplorer

πŸ–‹

Sunghee Lee

πŸ–‹

awallendahl

πŸ–‹

Boris Mann

πŸ–‹

carumusan

πŸ–‹

econoar

πŸ–‹

Gustavo Esquinca

πŸ–‹

Javier Tarazaga

πŸ–‹

Kendall Cole

πŸ–‹

Brendan Lee

πŸ–‹

Mahesh Murthy

πŸ–‹

Patrick Gallagher

πŸ–‹

Ali Abbas

πŸ–‹

wtf

πŸ’» πŸ‘€ πŸš‡

Aleksandr Sobolev

πŸ–‹

Zak Cole

πŸ–‹

Bogdan Habic

πŸ–‹

Nick Sawinyh

πŸ–‹

Miguel Angel GordiΓ‘n

πŸ’»

Eswara Sai

πŸ’»

ethers

πŸ–‹ πŸ€”

Felipe Faraggi

πŸ–‹ 🌍 πŸ€” πŸ‘€

Maurelian

πŸ’» πŸ‘€ πŸ–‹

CPSTL

πŸ–‹ πŸ‘€ πŸ“–

Hudson Jameson

πŸ–‹ πŸ“–

Shayan Eskandari

πŸ’» 🌍

Lukas SΓ€gesser

πŸ’»

Virgil Griffith

πŸ–‹

Eugene Aseev

πŸ–‹

Jannis Pohlmann

πŸ–‹

think-in-universe

πŸ’» πŸ–‹

Josh Stark

πŸ–‹ πŸ‘€ πŸ“†

Alan Woo

πŸ’» 🎨

Manank Patni

πŸ–‹

RogΓ©rio AraΓΊjo

🌍

Natacha Souza

🌍

sorumfactory

🌍 πŸ“† πŸ–‹ πŸ›

Sam Richards

πŸ’» πŸ–‹ πŸ“– πŸ“†

Antonio Della Porta

πŸ’»

Abhimanyu Shekhawat

πŸ–‹

William Entriken

πŸ–‹ πŸ“–

Sangphil Kim

🌍

peijie

🌍

Jokyash

🌍

Pedro Rivera

🌍

Gabriele Rigo

🌍

Tilen DrΕΎan

🌍

jJosko1986

🌍

ECN

🌍

Damiano Azzolini

🌍

matteopey

🌍

Hun Ryu

🌍

nake13

🌍

alexiskefalas

🌍

Behrad Khodayar

🌍

Frankaus

🌍

hacktar

πŸ’» 🌍

Jaroslav Macej

🌍

Eman Herawy

🌍 πŸ’»

Bellinas

🌍

Alexander Cherkashin

🌍

Enoch Mbaebie

🌍

inlak16

🌍

Bob Jiang

🌍

Suhun Kim

🌍

Jean Zundel

🌍

Hachemi

🌍

hanzoh

🌍

Vincent Le Gallic

🌍

Enigmatic331

πŸ–‹

Ganesh Prasad Kumble

πŸ–‹ 🌍

Pandiyaraja Ramamoorthy

πŸ–‹ 🌍

Archan Roychoudhury

πŸ–‹ 🌍

SAI PRASHANTH VUPPALA

πŸ–‹ 🌍

Sayid Almahdy

🌍

jeedani

🌍

Akira

🌍

karansinghgit

πŸ’»

Marc Garreau

πŸ–‹ πŸ€” πŸ›

mul53

πŸ’»

Apoorv Lathey

πŸ’»

Ken Sato

πŸ–‹

Sesamestrong

πŸ’»

ChrisK

πŸ–‹

Stefan van As

πŸ–‹

GrΓ©goire Jeanmart

πŸ–‹

nysxah

πŸ–‹

Rachel

πŸ–‹

wschwab

πŸ’» πŸ–‹

Edson Ayllon

πŸ–‹ πŸ€”

Peteris Erins

πŸ–‹

jimmyshi

πŸ–‹

Jefte Costa

🌍 πŸ’»

Jinho Jang

πŸ–‹

Julien Klepatch

πŸ–‹

Yaz Khoury

πŸ–‹

Yos Riady

πŸ–‹

Andrew Cohen

πŸ›

Wesley van Heije

πŸ–‹

gr0uch0dev

πŸ–‹

sooyoung

πŸ–‹

Adria Massanet

πŸ–‹

Alex Singh

🎨

Carl Fairclough

🎨 πŸ’» πŸ›

Kaven C

πŸ–‹

Markus Hatvan

πŸ’»

Evans Tucker

πŸ–‹

Adina Cretu

🌍

tvanepps

πŸ› πŸ–‹

Victor Guyard

️️️️♿️

Abhranil Das

πŸ›

Ahmet Emin Koçal

🌍

Aqeel

πŸ€”

Linda Xie

πŸ‘€ πŸ–‹

Ian Eck

πŸ‘€ πŸ–‹

Chris Waring

πŸ’» πŸ€”

Ev

πŸ€” πŸ› πŸ–‹

Ivan Martinez

πŸ–‹

Sebastian T F

πŸ’»

Anett Rolikova

πŸ–‹

Pooja Ranjan

πŸ–‹

sassal

πŸ–‹

Robert Zaremba

πŸ–‹

Tas

πŸ€” πŸ–‹

Sylvain Pace

πŸ’»

Sina Habibian

πŸ€”

Dennison Bertram

πŸ€”

Artur Gontijo

πŸ€” πŸ–‹

ethjoe

πŸ–‹ πŸ‘€

cooganb

πŸ€”

drequinox

πŸ–‹

Tarun Gupta

πŸ–‹

Jamie Pitts

πŸ€”

Chris Seifert

πŸ›

John Craig

πŸ’»

Noam Eppel

πŸ›

Jacob Willemsma

πŸ–‹

Alex

πŸ€”

Paul Razvan Berg

πŸ–‹

ph5500

πŸ–‹ πŸ’»

John Monarch

πŸ–‹

Shadab Khan

πŸ’»

ryancreatescopy

πŸ“– πŸ’» 🎨 πŸ› πŸ€” πŸ‘€ πŸ–‹

Hammad Jutt

πŸ–‹

Becaz

πŸ€”

Caos

πŸ–‹

codingsh

πŸ’»

Artem

πŸ–‹

Cristian Espinoza Garner

πŸ–‹

Daniel Schlabach

πŸ–‹

Marius van der Wijden

πŸ–‹ πŸ€”

Markus Waas

πŸ–‹

Keith Yeung

πŸ’»

Jordan Lyall

πŸ–‹

elanh

πŸ–‹

Mohamed Hayibor

πŸ–‹

Conor Svensson

πŸ–‹

Aranha

πŸ’»

Jung Sup (James) Yoo

🌍

Veit Progl

πŸ€”

jcamilli

πŸ–‹

Martin Holst Swende

πŸ›

Steven Gilbert

πŸ–‹

Sacha Saint-Leger

πŸ–‹

Griffin Ichiba Hotchkiss

πŸ–‹

Scott Bigelow

πŸ–‹

Harikrishnan Mulackal

πŸ–‹

Matthieu Caneill

πŸ–‹

Arjuna Sky Kok

πŸ›

Brian Gu

πŸ–‹

Gonçalo Hora de Carvalho

πŸ›

MΓ‘rio Havel

πŸ–‹

JosefJ

πŸ–‹

Christoph Burgdorf

πŸ€”

slipperybeluga

πŸ€”

David Liu

πŸ–‹

shreyashariharan3

πŸ–‹

AdriΓ‘n Calvo

πŸ–‹

daviroo

πŸ–‹

Wim Notredame

πŸ’»

vasa

πŸ–‹

Franziska Heintel

πŸ–‹

Muhammad Umair Irshad

πŸ–‹

Nazzareno Massari

πŸ–‹

Mayemene Fomene Jean Vladimir

πŸ› πŸ–‹

Yahsin Huang

πŸ–‹ 🌍

James Zaki

πŸ–‹

Greg Lang

πŸ–‹

Matt Voska

πŸ›

mustafa

πŸ–‹

Paul Wackerow

πŸ’» πŸ›

Attaphong Rattanaveerachanon

πŸ› πŸ–‹

LoinLiao

πŸ–‹

DrMad92

πŸ›

Patricio Palladino

πŸ‘€ πŸ€”

David Murdoch

πŸ‘€

MashhoodIjaz

πŸ› πŸ–‹

Dan Nolan

πŸ–‹ πŸ“–

Marek Kirejczyk

πŸ–‹

Jon Cursi

πŸ–‹

James Farrell

πŸ› πŸ–‹

Xavi Arias SeguΓ­

πŸ› πŸ–‹

ANKIT_PAL

πŸ’»

Δ°smail Kerim Cem

πŸ›

Joanne

πŸ–‹

michael60634

πŸ› πŸ€”

Andrei Maiboroda

πŸ–‹

Anki

πŸ–‹

Michelle Plur

πŸ›

PAAlmasi

πŸ–‹

Ben Edgington

πŸ› πŸ–‹

alexsantee

πŸ› πŸ–‹

peth-yursick

πŸ–‹

Alwin Stockinger

πŸ› πŸ–‹

Roberto HenrΓ­quez Perozo

πŸ–‹

strykerin

πŸ–‹

jddxf

πŸ› πŸ–‹

LucasRoorda

πŸ–‹

Mihir Luthra

πŸ–‹

tentodev

πŸ–‹ πŸ›

MiZiet

πŸ–‹

Vaibhav Chopra

πŸ–‹

Lakshman Sankar

πŸ› πŸ–‹

hewigovens

πŸ–‹ πŸ›

DragonDev1906

πŸ› πŸ–‹

Ryan Ghods

πŸ–‹

Oliver

πŸ–‹

Kristiyan

πŸ› πŸ’»

Matthieu Riou

πŸ–‹

pansay

πŸ–‹ πŸ›

eirtscience

πŸ–‹

Francis Lewis

πŸ› πŸ–‹

baub

πŸ–‹ πŸ›

lamone

πŸ–‹

Sean O'Connor

πŸ–‹

Tara Rowell

πŸ–‹

Aleksi Cohen

πŸ› πŸ–‹

Kartikaya Gupta (kats)

πŸ› πŸ–‹

siddhantkharode

πŸ–‹ πŸ›

Renan Dincer

πŸ› πŸ–‹

Zhangyuan Nie

πŸ› πŸ–‹

Patrick Collins

πŸ–‹

Sant Deleon

πŸ’»

Martin Huschenbett

πŸ–‹ πŸ›

Kalle Moen

πŸ› πŸ–‹

Vitaly

πŸ’»

Nikolay Yushkevich

πŸ–‹

darkwater4213

πŸ› πŸ–‹

Akash Nimare

πŸ–‹

Dave Mackey

πŸ–‹

Emanuel TesaΕ™

πŸ–‹

DeFiDude

πŸ›

Austin Griffith

πŸ–‹

Chase Manning

πŸ› πŸ–‹

Colin Steil

πŸ–‹

MonarthS

πŸ’»

Adam Dry

πŸ› πŸ–‹

Nikolai Vavilov

πŸ› πŸ–‹

Katie

πŸ› πŸ–‹

comeToThinkOfEth

πŸ›

catsnackattack

πŸ›

Maurycy

πŸ–‹

Igor Papandinas

πŸ› πŸ’» πŸ–‹

Tahir Alvi

πŸ€”

amirmehdi

πŸ› πŸ–‹

Dan Dadybaev

πŸ–‹

Finley

πŸ€”

nobd

πŸ–‹

Alexander Sadovskyi

πŸ–‹

Ethan Sarif-Kattan

πŸ› πŸ–‹

C.J. Kozarski

πŸ–‹

Yakko Majuri

πŸ’»

John Adler

πŸ–‹ πŸ›

Just some guy

πŸ–‹

Vedvardhan

πŸ–‹ πŸ›

Yussuf Elarif

πŸ›

David Awad

πŸ–‹

Alex Beregszaszi

πŸ–‹

Adam Goth

πŸ› πŸ–‹

Anurag Pal

πŸ’» πŸ“–

Vishal Pratap Singh

πŸ’»

qbzzt

πŸ–‹ πŸ€”

Ewa Kowalska

πŸ–‹

Aheesh

πŸ–‹

tophersjones

πŸ–‹

Andrew Yang

πŸ–‹

$hoot->Pairs

πŸ–‹

NilsKaden

πŸ’»

Stuart Reynolds

πŸ€”

Gwenael Le Bodic

πŸ–‹

Anurag Verma

πŸ› πŸ’»

Nikolai Golub

πŸ–‹

Elliot Lee

πŸ–‹ πŸ›

Viktor Garske

πŸ› πŸ–‹

Kristjan Grm

πŸ–‹

Mac L

πŸ–‹

Bruce MacDonald

πŸ–‹

Ronnie Sherfey

πŸ’»

Ali Rahman

πŸ–‹

Erik Vandeputte

πŸ–‹ πŸ›

TM Lee

πŸ›

mic0des

πŸ’»

Hakeem Almidan

πŸ–‹

Julien Rioux

πŸ–‹

Justin Chow

πŸ–‹

Gabi

πŸ–‹

Rohit Gopal

πŸ›

Jordan Overbye

πŸ› πŸ’»

Peter LaFontaine

πŸ› πŸ–‹

Joshua Welsh

πŸ›

Robert Dosa

πŸ–‹

SatoshiMiracle

πŸ›

James Boyle

πŸ€” πŸ–‹

Kevin Ziechmann

πŸ›

Evan

πŸ–‹

ETHorHIL

πŸ–‹

shashvatshah9

πŸ–‹

slightlyfloating

πŸ›

Luis Miranda

πŸ›

Alex Ismodes

πŸ–‹

Joshua

πŸ› πŸ’»

Ensar Yusuf YΔ±lmaz

πŸ›

Leo GutiΓ©rrez RamΓ­rez

πŸ›

Abdul Malik

πŸ›

Jay Welsh

πŸ›

linkastic

πŸ–‹

Chan Jing Hong

πŸ–‹

Ozora Ogino

πŸ–‹ 🌍

Ikko Ashimine

πŸ› πŸ–‹

Cameron Honis

πŸ›

Chirag Shetty

πŸ›

Michael Bianco

πŸ›

Tom Robiquet

πŸ’»

Stanislav Bezkorovainyi

πŸ–‹

Rootul Patel

πŸ›

Zachary DeRose

πŸ–‹

Arshan Khanifar

πŸ›

David Schnurr

πŸ–‹

Kevin Leffew

πŸ–‹

Pierre Grimaud

πŸ›

Jack Clancy

πŸ–‹

Justin Spradlin

πŸ› πŸ–‹

Aditya Anand M C

πŸ–‹

James Dixon

πŸ–‹

Vasu Manhas

πŸ›

jp_aulet

πŸ’»

manojmsrit

πŸ€”

David Kim

πŸ–‹

Bhavish Yalamanchi

πŸ–‹

awg0013-PR

πŸ–‹

Devin

πŸ–‹

Dave

πŸ€”

Rafael Matias

πŸ› πŸ–‹

Colman Glagovich

πŸ–‹

endorphin

πŸ–‹

Nebali

πŸ–‹

Shubh Agrawal

πŸ–‹

cth0604

πŸ’»

zjpetersen

πŸ›

frankie224

πŸ›

Alexandru Turcanu

πŸ–‹

Brett

πŸ–‹

JoΓ£o Monteiro

πŸ–‹ πŸ›

Arun Lodhi

πŸ–‹

Tim

πŸ–‹

Vitaliy Hayda

πŸ› πŸ–‹

Ayushman Singh Chauhan

πŸ› πŸ–‹

Keqi Huang

πŸ› πŸ–‹

davidplutus

πŸ€”

Karthickmerk

πŸ€”

Sihong

πŸ’»

AmirAliM

πŸ–‹

Rub3cula

πŸ–‹

PaweΕ‚ Urbanek

πŸ–‹

Aditya Dhir

πŸ›

Ammar Husain

πŸ–‹ πŸ›

miiiguel

πŸ–‹

Uttam Singh

πŸ›

Chase Wright

πŸ–‹

Bic

πŸ–‹

devELIOper

πŸ–‹ πŸ›

Vadym Barda

πŸ–‹

Leo CuΓ©llar

πŸ–‹ πŸ’» πŸ›

pheeque

πŸ› πŸ–‹

Jeremy Musighi

πŸ–‹

tbollinger

πŸ›

Ryan Grunest

πŸ–‹

Aniket Raj

πŸ–‹

Kamil Zarzycki

🌍 πŸ–‹

Filip Martinsson

πŸ–‹

zeroservices

πŸ›

LukaK

πŸ–‹ πŸ€”

Luke Ingalls

πŸ–‹

cstradtman

πŸ›

G Surendar Thina

πŸ–‹

Scott Dodge

πŸ›

Artur Cygan

πŸ›

Rory

πŸ›

Connor Mann

πŸ›

Phanindra

πŸ–‹

kwsorensen

πŸ–‹

Theo Pack

πŸ›

kirati-su

πŸ€”

oliver renwick

πŸ€” πŸ›

Pankaj Patil

πŸ–‹

esale

πŸ›

RaynHarr

πŸ–‹

n4rsil

πŸ–‹

John Bishop

πŸ–‹

robriks

πŸ› πŸ“† πŸ’¬ πŸ“–

Nishant Chandla

πŸ’» πŸ›

@paulapivat

πŸ–‹

Graeme Blackwood

πŸ›

il3ven

πŸ’»

Hayden Briese

πŸ›

Trevor French

πŸ–‹

Antonio Sanso

πŸ“–

Siddharth S

πŸ“– πŸ›

jbgwu

πŸ“–

ethosdev

πŸ–‹

Joseph Schiarizzi

πŸ–‹

Rodney Olav C Melby

πŸ–‹

Raman

πŸ–‹

Roeland Werring

πŸ›

Stan Kladko

πŸ“–

Jared Flomen

πŸ“– πŸ›

Joseph Wallace

πŸ›

Ahmed Prusevic

πŸ’»

Matt

πŸ–‹

ytrezq

πŸ“–

Ricky

πŸ›

smudgil

πŸ–‹

Don Cross

πŸ“–

Jackson Taylor

πŸ€”

MrBrain295

πŸ› πŸ“– πŸ€” πŸ–‹

SafePalWallet

πŸ–‹

Vishal Vaddadhi

πŸ–‹

Matt Kula

πŸ›

Hamza Shahzad

πŸ’» πŸ›

Mukul Kolpe

πŸ’» πŸ› πŸ“–

Corwin Smith

πŸ’»

spiolat

πŸ“–

hosyminh95

πŸ“–

Chiara Wilden

πŸ€” πŸ“–

DanhPTHTech

πŸ“–

James Hooper

πŸ› πŸ“–

Christopher Hegre

πŸ“–

Najeeb Nabwani

πŸ“–

Alexander Goncalves

πŸ“–

Gabe Casalett

πŸ“–

waynedyer12

πŸ“–

tap (pts.eth)

πŸ–‹

James Morgan

πŸ€”

Sharon Wang

πŸ› πŸ“–

Enrique Jose Avila Asapche

πŸ€”

Gianni Alessandroni

πŸ“–

Raj Shekhar Bhardwaj

πŸ“–

joakimengerstam

πŸ“–

Nikita Drozd

πŸ› πŸ“–

Scott

🎨

Stefan Sathianathen

πŸ“–

Miroslav Lehotsky

πŸ“–

Remco

πŸ“–

Shailendra Shukla

πŸ“–

Skylar Weaver

πŸ“–

agorismlabs

πŸ€”

Tanishq Sharma

πŸ€”

Mark Strefford

πŸ›

Andrzej WΓ³dkiewicz

πŸ“–

Hugo

πŸ–‹

Joseph Harris

πŸ“–

Ozgur

πŸ“–

Alec Dilanchian

πŸ“–

Horacio Bertorello

πŸ“–

m4sterbunny

πŸ“–

ζ„šζŒ‡ε―Ό

πŸ“–

Ray Jasson

πŸ“–

Calvin Storoschuk

πŸ› πŸ’»

Clashinm

πŸ“–

james-prysm

πŸ€”

William Buck

πŸ“–

metalocal

πŸ› πŸ“–

Himanshu Singh

πŸ› πŸ“– πŸ€”

Andrew B Coathup

πŸ“– πŸ›

Andrew Gallagher

πŸ–‹

Phat Nguyen Luu

πŸ“–

Andreas Sofos

πŸ’»

Felipe Selmo

πŸ“–

Bingwei Qin

πŸ“–

Mikko Ohtamaa

πŸ€” πŸ“–

Kabilan

πŸ€”

Colin Steidtmann

πŸ–‹

SNikhill

πŸ’»

SlashHash

πŸ€”

Harsh Mathur

πŸ–‹

pranav desai

πŸ–‹

LukΓ‘Ε‘ Kotol

πŸ“–

Nick Carbone

πŸ“–

Ashwin Nair

πŸ’»

Julian Ste

πŸ’»

Pranay Reddy

πŸ’»

marc

πŸ“–

Mariano Baragiola

πŸ“–

under3415

πŸ€”

Gaurav Kumar Shah

πŸ€”

Hubert Sikorski

πŸ“–

Corey Rice

πŸ“–

Ezenwankwo Gabriel

πŸ“–

Thomas Lisankie

πŸ“–

Tyler Ilunga

πŸ“–

Kasia Kosturek

πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Join our Discord server

We have a space to discuss all things ethereum.org – share your ideas or just say hi over on Discord.

About

Ethereum.org is a primary online resource for the Ethereum community.

https://ethereum.org/

License:MIT License


Languages

Language:JavaScript 98.2%Language:CSS 1.3%Language:Solidity 0.5%Language:Shell 0.1%