The Web3 provider is an essential part of a blockchain-powered application. and EIP-1474. This will work fine for a websocket provider, but our server in ganache will need to handle routing the subscriptions accordingly based on their ID, cleaning them up on disconnect, etc. web3.eth.defaultAccount = web3.eth.accounts[0]; var CoursetroContract = web3.eth.contract(PASTE ABI HERE! If you want, in the console window within the inspector, you can type: Awesome! MetaMask is not only kind of the wallet anymore. There is now more generic Web3modal solution that allows e.g. mobile wallets to connect with your It is an interface for interacting with a node. Additionally, there is a big up-front time cost for downloading the full blockchain history. When the main provider stops responding, the backup provider takes over. Instead of using a ref to store the provider: const provider = ref (null); you should use computed to store the provider instead: const provider = computed ( () => For connecting to a remote privacy statement. web3 The Web3 provider then queries the blockchain node(s), and returns the value/data to the app for it to display to the end-user. @ryan-rowland you added WebsocketSubprovider (thanks!) To get started, paste the following contents into the empty index.html file: As you can see, were referencing a main.css file, so create that file and paste in the following rulesets real quickly: Going back to the index.html, at the bottom of the file we have an empty