I try to use ethers.js events, but they seem to be polling constantly and eventually the RPC provider sends HTTP code 429: Too Many Requests.
I understand that I can use non-standard APIs of providers, to set up webhooks. (Actually, I don't know of any providers that let me set up webhooks programmatically, except Moralis. Does anyone know any others? Please let me know in a comment, if you do.)
But is there some sort of "streaming websocket" standard that ethers.js could use with a provider, to receive events when they arrive?
Also as a related part of the question: if I give the client a token with which to issue transactions, can't the client use up my entire API quota with the RPC provider with unlimited transactions? And similarly with this websocket thing. So maybe I have to use webhooks if I want to protect my API credits?