I am planning on setting up an Ethereum wallet in my website. Doing so by interacting with an Ethereum node over JSON RPC.

I want it to act almost 100% similar to how a cryptocurrency exchange (Bittrex, Binance, etc) wallet acts, with the ability to send and receive funds from my website.

If possible, I would like to spin up a node using a service like quiknode.io to do this if possible, rather than maintaining my own. And then interact with it via my website.

I am finding it very hard to find any guides on this or any literature on what best practices are in doing something like this.

Anyone have any insight?

2 Answers 2


Have a look at this discussion on ETH wallet/account best practices: https://twitter.com/QuikNode/status/1035517337187835905 -- hope it helps!


I'd suggest using Infura as your node provider: https://infura.io/

Here's a their guide on getting started: https://blog.infura.io/getting-started-with-infura-28e41844cc89. It doesn't cover anything like what your frontend or backend should look like, just making Web3 requests with Infura.

  • The part I'm not understanding, is how would I sign my transactions before invoking the eth_SendRawTransaction method? Infura doesn't manage keys, so I will need to find a mechanism to sign the txn before sending to Infura. What's the best practice to make that happen? Nov 7, 2018 at 3:55
  • Yes, that is the case. There are a few options: You can rely on the user providing their own Web3 provider, such as Mist or MetaMask, and those will do the signing for you. Or you can have the user enter private keys through your application and sign the transactions yourself using a library like ethereumjs-tx which is what MyEtherWallet and MyCrypto do. Or you could integrate hardware wallet support, like Ledger or TREZOR.
    – wbobeirne
    Nov 7, 2018 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.