/r/ethdev

Photograph via snooOG

Ethereum-related dev talk:

Contracts, DApps, Wallets, Clients, Infrastructure, Tooling, UIs, Patterns, and others.

Ethereum Development and DApps

No specific rules are enforced apart from the normal global reddit rules.

Search our history

Testnet Ethers

Updated faucets for 2022:

https://goerlifaucet.com (new since March)

Goerli Github Request Issue

https://www.rinkebyfaucet.com

Updated faucet for 2021:

https://faucets.chain.link/

Older faucets (some might be broken):

For Rinkeby, Ropsten, Kovan, Goerli Testnet Ethers: Get them here and here

For more Görli Testnet Ethers: Get them here

For more Ropsten Testnet Ethers: Get them here

Other subreddits

http://ethereum.stackexchange.com/ - The Ethereum Programming Stack Exchange

r/EthDevJobs - To find Jobs, and posting you're Hiring

r/ethereum - Offical sub, for discussion of Tech and Application Development using Ethereum.

r/ethfinance - A community for investors, traders, users, developers, and others to discuss Ethereum and its cryptocurrency ETH.

r/ethtrader - Trading sub, for price discussion of Ether and other cryptocurrencies

r/ethstaker - About staking your ETH: help and guidance

r/EtherMining - Ether Mining discussion.

r/ethereumnoobies - Ethereum for newbies

Others: r/ethtraderpro, r/cryptocurrency

/r/ethdev

112,662 Subscribers

2

Anyone willing to test out a lending dApp I built today?

Like the title says, looking for some people willing to test out a lending dApp I built today (can return the favor in the future).

DM me if you're interested!

2 Comments
2024/12/21
05:24 UTC

3

Syllabus for web3 development

i have a keen interest in crypto and web3 space so I want to learn web3 development what will be the resources and what is the syllabus can anyone experienced guy guide me on this field

8 Comments
2024/12/21
04:02 UTC

2

Calling All Saigon Developers: Web3 Meetup in HCMC! (Gaia X HackQuest)

Hey r/ethdev,

Are you a developer in Ho Chi Minh City interested in learning about Web3, blockchain, and decentralized AI? Then you won't want to miss the Gaia X HackQuest IRL Developer Meetup on Friday, December 27th, 2024, from 5:00 PM to 8:00 PM at Family Garden 2 (28 Thao Dien, District 2).

Registration Link: https://lu.ma/hxuh4zk1

This is a fantastic opportunity to:

  • Network: Meet and connect with other talented developers in the Saigon tech scene.
  • Learn: Get insights into Web3 development from HackQuest (a leading Web3 education platform) and Gaia (a cutting-edge decentralized AI network).
  • Discover: Explore EDU Chain and its potential to revolutionize education through blockchain.
  • Grow: Find out about HackQuest's training programs, hackathons, and project incubation opportunities.
  • Enjoy: Free entry, refreshments, and networking in a relaxed environment!
0 Comments
2024/12/21
04:01 UTC

2

How to achieve decentralization of tokenized real-world assets (RWA)?

Recently, I have been in contact with the RWA sector in the Crypto world. I have found that it is seem difficult to achieve decentralization in tokenizing things that can affect a country, such as real estate and noble metals.

A key point is that tokens require the endorsement of real assets, as well as related legal and regulatory issues, making it necessary for authoritative institutions to implement them. I cannot think deeply about this……

So, welcome to all your ideas about RWA, including other challenges, current reliable solutions, and future developments

3 Comments
2024/12/21
03:32 UTC

1

Wallet Activity History

I’m looking for a data provider that will provide as good a result as Moralis does with their wallet History endpoint https://docs.moralis.com/web3-data-api/evm/reference/wallet-api/get-wallet-history

The thing is Moralis doesn’t support ZkSync. And I need this specifically.

Does anyone know where i can get really good decoded wallet activity?

2 Comments
2024/12/20
15:28 UTC

2

Ipfs upload

Hello! Recently I have Created a collection of NFTs and trying to upload in IPFS First. But right now I have seen a lot of storage websites are closing and the API Keys are invalid now. Where can I store My Nfts now where it's cheap and safe?

4 Comments
2024/12/20
12:59 UTC

2

When to use abi.encode, abi.encodePacked and abi.encodeWithSignature in solidity ?

0 Comments
2024/12/20
05:50 UTC

1

Need Sepolia ETH - TESTNET

Good morning!

I am studying and learning about this new world for me that is cryptos.

I looked for several faucets, but they are very limited.

Anyone who can help me by contributing 0.5 eth sepolia would be very grateful!

My wallet (0x04c50635a589a0f22a783c4714d497f5860dd3ad)

I hope to one day achieve the success that everyone has achieved living solely from this type of business.

4 Comments
2024/12/20
03:52 UTC

0

I think I actually have a practical use coin idea

I’m looking for some Devs, I have no technical knowledge of coding or creating a block chain but I do believe I have figured out at least TWO major markets which tokens would work incredibly. If any devs would like to hear me out please feel free to send me a DM!

1 Comment
2024/12/19
23:10 UTC

2

Is it possible to migrate data from a smart contract?

I'm thinking of a situation where we identified bugs in our existing contract and need to deploy a new contract. How straightforward is it to migrate all the data from the old contract to the new contract?

10 Comments
2024/12/19
09:13 UTC

4

Looking for Research Topic Ideas Combining Blockchain and Zero-Knowledge Proofs (ZKPs)

Hey everyone! 👋

I’m preparing a PhD research proposal that focuses on the intersection of blockchain and zero-knowledge proofs (ZKPs). I’m looking for inspiring research topics or themes that explore how ZKPs can enhance blockchain systems/architectures (for now, I'm thinking about proposing something like developing a formal model and domain-specific languages (DSLs) to describe ZKP schemes as modular architectural components within blockchain AND/OR designing adaptive and interoperable standardized architectures).

If you have any ideas, suggestions, or even wild concepts that you think are worth exploring, I’d love to hear them! Whether it’s related to privacy-preserving smart contracts, cross-chain verification, DeFi security, or anything else involving ZKPs and blockchain, I’m open to all ideas.

Thanks in advance for sharing your thoughts! 🙏

5 Comments
2024/12/19
01:08 UTC

0

Need ETH Sepolia

Guys I am in need of sepolia, my laptop is very slow and i don't really get a good hasrate from the faucet. Would be lovely if y'all could help me out

Wallet Address: 0xc7Ac320f91fd699224Fad6BA43EdAe7C086A1C59

3 Comments
2024/12/18
19:36 UTC

1

Help! How to get transaction data (the data for setting up transaction) using a bot?

I want a bot to do one thing, let me explain:

Normal users, use Metamask in their browser, to interact with Dapps. When they click a button for transaction, the metamask then asks the frontend for "transaction data", then the response will be attack to window.ethereum object, then Metamask use the info to display below page.

Please correct me if my understanding is wrong.

The thing I want to do is, have my NodeJS bot to retrieve transaction data too, so I can base on it to automate transactions, but how can I do that?

Appreciated!

https://preview.redd.it/us5hvszm2n7e1.png?width=970&format=png&auto=webp&s=8edb9e3538bbfc5ca994f68800e09284729b1732

2 Comments
2024/12/18
17:06 UTC

3

Hard Forks in Blockchain: Simple and Straightforward

1 Comment
2024/12/18
15:34 UTC

1

Any wallet good for getting all details of individual transactions before confirmation?

Hi all,

I am learning to build a bot, going auto transaction for me. For me to do this, I need a wallet (I am using metamask) that show me all the transactions details so I can put it in my code to interact with smart contracts. But metamask seems to be horrible at this, is there any wallet recommended?

11 Comments
2024/12/18
11:57 UTC

1

Help! How to find tx details (salt) from metamask before confirmation?

Hi all,

I am a dev, I want to know how to get the full form of the salt, clicking "?" won't help, this is frustrating.

https://preview.redd.it/l79tbahcil7e1.png?width=982&format=png&auto=webp&s=8fc0cdb681b80ce353e6d3afe0322ee76f45eacf

0 Comments
2024/12/18
11:51 UTC

1

help me and a friend, win some cash

I’m looking for an Ethereum smart contract developer to assist with a honeypot token issue. $3 million in the token and have confirmed successful transactions exchanging it for WETH on the network. Currently, I’m unable to sell the token, and my goal is to recover my investment. I need someone with experience in custom smart contracts, MEV bots, or alternative transaction routes to facilitate a solution. A generous payment will be offered for a successful resolution. Token details and contract address will be shared privately with qualified candidates. Please provide relevant experience and availability.

15 Comments
2024/12/17
22:21 UTC

2

Build Multi Chain Ethereum Applications with IC-Alloy and the Internet Computer

One of the major strengths the Internet Computer (ICP) has over other blockchains is its ability to hold Ethereum, Bitcoin, and other assets natively. Not only can ICP smart contracts hold these assets, but they can also interact with smart contracts on other chains.

IC-Alloy is a fork of the Rust-based Ethereum support library Alloy. The goal of IC-Alloy is to vastly simplify interactions with EVM-based blockchains from the Internet Computer.

In this article, we will explore the features of the IC-Alloy library, how you can use it to interact with Ethereum, and what kind of Chain Fusion use cases it enables.

TL;DR:

IC-Alloy extends Alloy with the following features:

  • ICP Transport Layer: Routes requests through the IC EVM RPC canister or an external RPC proxy.
  • ICP Signer: Abstracts away the complexity of signing EVM messages and transactions on ICP.
  • ICP Provider: Provides a simple interface for interacting with the IC EVM RPC canister.

IC-Alloy has examples!

Introduction

Before we dive into the details of IC-Alloy, let's first talk about what we mean when we say that ICP can hold assets natively on other chains.

What Does It Mean to Hold Assets on a Blockchain?

Basics first, here is a refresher on what it means to hold assets on a blockchain. If you are a seasoned blockchain developer you might consider skipping this section.

When you hold an asset on a blockchain, it means you have a balance connected to an address that you control. The address is derived from a cryptographic hash of a public key, while the balance is simply a number representing the amount of the asset you own.

The balance is recorded on the blockchain’s ledger, and you can transfer it to other addresses by signing transactions with your private key. Whoever controls the private key linked to an address effectively controls the assets at that address.

Each blockchain uses a cryptographic scheme that defines how keys and addresses are generated, how messages are signed, and how signatures are verified.

The key to ICP being able to hold assets natively on other chains is that ICP supports more than one cryptographic scheme! In addition to the scheme used by ICP itself, ICP also supports the following schemes:

  • ECDSA: This scheme allows ICP smart contracts to securely hold Bitcoin and interact with Ethereum and other EVM chains such as Avalanche, Cardano, Cosmos, Dogecoin, Filecoin, Hedera, Polkadot, Stacks, and XRP.
  • BIP340: A scheme used in Bitcoin, especially in Taproot-related protocols like Ordinals, Runes, and BRC-20 tokens.
  • Ed25519: A scheme used in Solana, Stellar, Toncoin, Cardano, Polkadot, and Ripple.

ICP supports a powerful cryptographic technology called threshold signatures that allows multiple parties to collaboratively sign messages without exposing their private keys. This technology enables ICP smart contracts to securely derive addresses on behalf of users and sign transactions on other blockchains. Users in turn authenticate and interact with these smart contracts to manage their assets.

To learn more about this, check out my recent article: What the Schnorr?! Threshold Signatures on the Internet Computer.

Introducing IC-Alloy

Alloy is a Rust library providing a comprehensive toolset for encoding, decoding, and constructing various Ethereum-specific data types, including transaction and contract objects. Alloy supports the creation of Ethereum-compatible applications by offering developers a type-safe, performant, and ergonomic API for interfacing with Ethereum’s core primitives and executing tasks like building, signing, and decoding transactions.

Alloy is a great library for Rust developers working with Ethereum, but it lacks built-in support for ICP. This is where IC-Alloy comes in.

Luckily, Alloy is designed to be modular and easily extensible. This makes it possible to fork Alloy and add support for ICP without having to rewrite the entire library from scratch.

1. An ICP Transport Layer

Smart contracts on ICP are called "canisters." Canisters are composable and can call each other, making it possible to build complex applications by combining multiple canisters.

To interact with Ethereum, application canisters make calls to the EVM RPC canister. This canister acts as a gateway between the Internet Computer and Ethereum, allowing canisters to send requests to Ethereum's JSON-RPC API and receive responses.

The EVM RPC canister in turn uses another core feature of ICP—HTTPS Outcalls—making it possible for smart contracts to communicate with the outside world.

IC-Alloy adds an ICP Transport Layer to Alloy, abstracting away the complexity of routing requests through the EVM RPC canister or an external RPC proxy. This layer ensures that all requests to Ethereum are routed correctly and that requests and responses are properly typed, serialized, etc.

2. An ICP Signer

Alloy signers are responsible for... you guessed it... signing transactions. Alloy offers some built-in signers for using Ledger and Trezor physical wallets, as well as various software signers for signing transactions in memory where the private key is accessible to the program.

IC-Alloy extends Alloy with an ICP Signer that taps into the threshold signature capabilities of ICP. A canister never has direct access to the private keys used to sign transactions. Instead, the canister sends a request to the subnet nodes, which collaboratively generate the signature using a threshold signing protocol.

3. An ICP Provider

Alloy providers facilitate the interaction with Ethereum by managing JSON-RPC requests and responses. Providers offer utility functions for common tasks like querying the state of a smart contract, sending transactions, and estimating gas costs.

The ICP Provider in IC-Alloy extends the Alloy provider with ICP-specific functionality. For example, ICP canisters cannot easily work with the popular Rust library Tokio, as it is not fully compatible with the Internet Computer. Instead, ICP canisters have to rely on IC timers to do things like waiting for a transaction to be mined or subscribing to log events.

Show Me Some Code Already

Let's do a walkthrough of how to use IC-Alloy to get the balance of an ERC-20 token on Ethereum. This should give you a good idea of how IC-Alloy works and how you can use it in your own projects.

You’ll find more docs, examples, etc., on the IC-Alloy website.

Add IC-Alloy to Your Project

To use the ICP-enabled fork of Alloy in your project, add this to Cargo.toml:

alloy = { git = "https://github.com/ic-alloy/ic-alloy.git", tag = "v0.3.5-icp.0", features = ["icp"]}

Read and Parse the IERC20 Source Code

One of the greatest features of the Alloy library is the sol!() macro that lets you read and parse Solidity source code. This means we can head over to Etherscan and just copy the interfaces we are interested in. Alloy does all the heavy lifting, converting the interfaces into Rust code that we can use in our project.

sol!(
    #[sol(rpc)]
    "sol/IERC20.sol"
);

The get_balance function

Before we break down the code, here is the full get_balance function:

#[ic_cdk::update]
async fn get_balance(address: String) -> Result<String, String> {
    let address = address.parse::<Address>().map_err(|e| e.to_string())?;
    let rpc_service = RpcService::EthSepolia(EthSepoliaService::Alchemy);
    let config = IcpConfig::new(rpc_service);
    let provider = ProviderBuilder::new().on_icp(config);

    let usdc = IERC20::new(token_address, provider);

    let result = usdc.balanceOf(address).call().await;
    match result {
        Ok(balance) => Ok(balance._0.to_string()),
        Err(e) => Err(e.to_string()),
    }
}

1. Parse address

let address = address.parse::<Address>().map_err(|e| e.to_string())?;

First, we parse the address string into an Alloy Address type. This ensures that the address is valid and causes the function to return an error if it is not.

2. Create an RPC service

let rpc_service = RpcService::EthSepolia(EthSepoliaService::Alchemy);

Next, we create an RpcService that instructs the EVM RPC canister to use Alchemy as the RPC provider. See the list of RPC providers the EVM RPC canister supports.

3. Create a config object

let config = IcpConfig::new(rpc_service);

The config object determines the behavior of the ICP provider and transport when making the request. The new function takes the RpcService we created in the previous step and uses default values for the other fields.

4. Create a provider

let provider = ProviderBuilder::new().on_icp(config);

The ProviderBuilder is a helper that allows you to create a provider with a specific configuration. In this case, we use the on_icp method to create a provider that uses the ICP transport layer.

5. Creating an instance of the IERC20 contract

let usdc = IERC20::new(token_address, provider);

How great is this!? We can just create an instance of the IERC20 contract by calling the new method on the IERC20 struct. The new method takes the address of the contract and the provider we created in the previous step.

Once set up, we have access to all contract methods defined in the IERC20 interface.

6. Get the balance

let result = usdc.balanceOf(address).call().await;

Finally, we call the balanceOf method on the contract to get the balance of the address. The method returns a Result that we can match on to get the balance or an error.

Building Chain Fusion Applications

You have seen how the threshold signature technology of ICP together with IC-Alloy makes it super easy to interact with Ethereum from ICP smart contracts.

With Internet Computer lingo, we call these multi chain applications “Chain Fusion” applications. By Chain Fusion, we mean applications that seamlessly fuse together blockchains without the need for intermediaries.

Examples of Chain Fusion use cases include:

  1. Decentralized Exchanges (DEXs): Canisters can securely hold assets from multiple chains and facilitate trustless swaps between them.
  2. Cross-Chain Messaging: Canisters can send messages and trigger actions on other chains, enabling complex workflows and interoperability.
  3. Multi-Asset Wallets: Canisters can manage a diverse portfolio of assets across various blockchains, providing users with a unified interface for asset management.
  4. Co-processing and off-chain computation: Canisters can offload heavy computations to other chains and use the results in their own computations.
  5. Autonomous agents and smart contracts: Canisters can act as autonomous agents, interacting with other chains on behalf of users.

IC-Alloy comes with a collection of examples on how to perform common EVM operations, build wallets, and even create autonomous agents:

  1. ic-alloy-toolkit: A collection of examples on how to perform common EVM operations. Live demo
  2. ic-alloy-basic-wallet: A basic Ethereum multi-user wallet. Live demo
  3. ic-alloy-dca: A semi-autonomous agent, swapping ERC-20 tokens on Uniswap for you.

Let's build!

0 Comments
2024/12/17
21:43 UTC

5

I noticed that there is very little information about how to build an Oracle; almost everything I find is about fetch data and not about building one. Does anyone know of any repository that returns the value of ETH in relation to another currency? Or learning resources that go beyond Chainlink?

8 Comments
2024/12/17
17:34 UTC

2

sepolia ETH tesnet

hi guys can anyone sent me sepolia for testnet project i had search alot but didnt get nothing all the site that i find says i need ETH maint on my wallet but i dont have already so if anyone sent me some sepolia i will be grateful to him that my address : 0x226ECC7C22E7432193A86c66B4Dc948b2371d433

7 Comments
2024/12/17
14:48 UTC

1

Running solidity contracts outside evm locally

I am writing a new Blockchain and I want it to be able to execute contracts written in solidity. Is it possible to run a compiled solidity smart contract outside the Blockchain ? I want to do it locally without instantiating a local node.

Any suggestions?

10 Comments
2024/12/17
14:01 UTC

3

Looking for frontend dev for Hackathon

Hey, we are looking for a frontend dev with an atleast intermediate level of expertise(f.e. deploying the frontend to Swaps) to help us in a Hackathon we are a part of. The Protocol is already deployed, with a lot of the functions but our main frontend engineer, is busy until the end of the year.

If everything succeeds we want to employ you after the hackathon.

If you have any interest dm me or write here. Thanks in advance for your reply!

4 Comments
2024/12/17
08:54 UTC

1

Supply Chain Track & Trace on blockchain

I added track and trace functionality to my supply chain dApp, Scalar. The use case is the EU directive on deforestation but it can be applied to similar scenarios.

Video presentation here.

3 Comments
2024/12/16
21:13 UTC

14

Working on a platform to work on open-source Web3 projects and earn crypto

Hey everyone,

I’m building a platform to help open-source Web3 projects get issues resolved faster while helping devs earn some money. The idea is:

  • Anyone can add crypto to create/fund an issue for an open source project they care about.
  • Developers can pick up issues, solve them, and earn the amount that has been allocated to the issue if it's accepted.

We’re focused on solving common issues with existing platforms, like low-value bounties or too much competition for tasks by using a claim system to reduce redundant work and allowing anybody to fund any issue.

Right now, we’re in the early stages and have a coming soon page where you can sign up for updates: bountybolt.com

Would love to get any thoughts on the concept! What features would make this useful for a developer? Anything you’d like to see?

Any feedback is invaluable and could shape how we build this. Thanks in advance for sharing your thoughts 🙏

10 Comments
2024/12/16
16:40 UTC

6

I am not a coder. I know python moderately, want to start learning web3 development. How can I start learning and are there enough opportunities in the job market for the same?

I was a data analyst, but due to some emergencies at home had to leave my job a year back. I am planning to get back to pace, want to learn web3/blockchain development and at the same time I am a bit skeptical about the job market for the same or how is the freelance market for web3? Please help me out how do I proceed?

5 Comments
2024/12/16
15:03 UTC

3

Defi Startup - biotech/deep tech/drug design patents

Hi,

I’m not promoting my idea but sharing the context:

Context - looking at launching a platform that tokenises investment into startups and patents coming out of top universities. Democratising access to this opportunities + access to ordinary people to invest in them. Already building a team/dev.

Have worked in startups in different sectors before but have no experience in blockchain/know anyone in it.

How easy/difficult was it to build projects and deploy them on Eth? If you have launched a successful project were there issues with scalability etc afterwards?

Curious to hear from anyone with experience working on serious ideas - founders/devs/operators/marketing. New to the dev space so it’s a learning curve.

11 Comments
2024/12/16
09:18 UTC

Back To Top