I am following a tutorial on creating a simple dApp; in the tutorial, the provider used is window.ethereum, which is, correct for me if I am wrong, a MetaMask provider, but he still uses the alchemy API key to connect to the blockchain. Is the alchemy key used for deploying contracts onto the chain? Or what am I confused about?
Yes, you're correct that window.ethereum is the Ethereum provider object provided by MetaMask, and that Alchemy is a third-party service that provides an API endpoint for interacting with the Ethereum blockchain.
When you use window.ethereum to connect to the Ethereum blockchain through MetaMask, you connect to the Ethereum network using your MetaMask account. This allows you to sign transactions, send and receive Ether, and interact with smart contracts on the Ethereum blockchain.
However, window.ethereum alone does not provide you with access to all the data and functionality available on the Ethereum blockchain. To access more advanced features, such as querying historical blockchain data or deploying smart contracts, you'll need to use a third-party service like Alchemy.
In the tutorial you're following, it's possible that the Alchemy API key is being used for a few different purposes. Here are a few possibilities:
- Deploying smart contracts: Alchemy provides a way to deploy smart contracts onto the Ethereum blockchain, so it's possible that the the tutorial uses the Alchemy API key to deploy a contract.
- Querying historical data: Alchemy provides a more advanced API an endpoint that allows you to query historical data on the Ethereum blockchain, such as past transactions, events, and balances. It's possible that the tutorial is using the Alchemy API key to retrieve historical data.
- Enhancing window.ethereum: Alchemy provides additional functionality that can enhance the capabilities of window.ethereum, such as faster and more reliable node connections. The tutorial may use the Alchemy API key to enhance the window.ethereum provider object.
With more information about the specific tutorial you're following and how the Alchemy API key is being used, it's easier to say precisely why it's needed. However, using a third-party service like Alchemy can provide additional functionality and convenience for interacting with the Ethereum blockchain beyond what's available through the window.ethereum alone.
the window.ethereum provider is how do you connect with the chain through metamask, which means when you are in a browser application (a web3 dApp).
If you want to connect with the blockchain from a node environment, to deploy contracts, send transactions, or query smart contract you would need to instantiate an RPC, and to do that, you will to instantiate a provider with Alchemy/Infura, etc... In the case that you are in a browser application without metamask/or not yet logged in, for querying the blockchain you would also need to instantiate an RPC provider
Hope it helps