I need to handle different wallets and payments on Ethereum from different internal services, so ideally instead of adding built-in capabilities to handle wallets and transfers on each service, I want to have that in one service, and the rest of the services consuming that service to make the transfers.
So, what open source projects are out there that allow to:
- Deploy it as a HTTP server, preferable with a REST API.
- The server stores in some way the private key/s of the wallets. Then allows to make transfer thorugh API calls, were the client is validated with some sort of authentication like a header token, instead of clients providing the private key. If it support multi-signing keys, better, so no party included the server has all the credentials to make the transfer, an clients have to provide one of the keys but not all of them to make it.
- It allows to connect with different networks by configuration, like mainnet, or a testnet like Goerli, or even to a local ethereum network launched for testing.
And, but not mandatory:
- Allow basic settings like maybe setup limits on transfers, call a webhook or send a message to a queue if a transaction is made, etc.
- Allow to get useful information about the wallets, like the balance, transactions history, etc.
- Handle other coins / tokens than ETH.
There are SaaS products out there that provide services like these, but they are expensive, and proved to be unreliable when issues arises based on my experience, and also you have to trust the private keys to them, and I don't want that.