I want to create a pool where I reward member addresses that join it as long as I have proof that they have joined. To do this, I need a way to see the stake addresses of the users that have delegated to my pool to prove they have joined so I can automate the process. Is there a way to do this? I assume this information is on the blockchain and can be accessed in some way?
Check out vending machine https://vm.adaseal.eu/ I think that will do all you want it to.
Every blockchain explorer like https://adastat.net/pools/a532904ca60e13e88437b58e7c6ff66b8d5e7ec8d3f4b9e4be7820ec or https://cardanoscan.io/pool/a532904ca60e13e88437b58e7c6ff66b8d5e7ec8d3f4b9e4be7820ec?tab=delegators tells you the current delegators of your pool.
You can query that programmatically by an API like https://docs.blockfrost.io/#tag/Cardano-Pools/paths/~1pools~1%7Bpool_id%7D~1delegators/get or https://api.koios.rest/#get-/pool_delegators_history (where you can also query historical epochs).
Or you can install https://github.com/input-output-hk/cardano-db-sync on one of your nodes, which is one of the chain database solutions used by these services.
But @jeremyisme is right: Something like Vending Machine will also solve the distribution to your delegators, not only getting the data (though I don’t know if they can also distribute ADA rewards or just different kinds of native tokens).
Yes, I think it can. You just load up a wallet with tokens, or more ada. Although I haven’t tried it myself, it is just a rule based website so you can customise until your heart’s content!
Yes, you can distribute ADA and tokens already registered. If you are a single pool operator you can ask SEAL for an account and add your own tokens to your pool balance. In your account, there is a section called Delegators that lists all the staking addresses.
I recently found this stack post here (rewards - How to obtain wallet addresses of stake pool delegators? - Cardano Stack Exchange), what is interesting is there is some ways to do this with cardano-address or an API from black frost apparently (which @HeptaSean HeptaSean also mentioned) which is very interesting, do you guys have any thoughts on the methods they described there?
As for the ‘vending machine’ I’m very confused what that is exactly? I probably should have clarified that when I’m rewarding members, I’m giving them access to software I have developed not necessarily with more ADA, but that is an interesting idea also. Had no idea that existed. It seems that vending machine will let you give ‘NFT’s (tokens)’ to people that delegate to your pool’? Is that what it does? How do I create these Tokens if so? That is an interesting idea in addition to what I was going to do anyways.
What is done with cardano-address
in that answer is not finding out who your delegators are. It cannot do that. It doesn’t query live blockchain data, but just manipulates addresses.
It is used there – if you already know the reward addresses of your delegators – to get some data to query cardano-db-sync
(which would additionally be needed) to get receive addresses for that stake address. (I’d really rather use one of the mentioned APIs.)
Regarding the tokens distributed to delegators: It only makes limited sense to invent some yourself. They won’t have much value, would just be some kind of souvenir. Most stake pools cooperate with different projects and distribute their tokens to their delegators – either as an exchange (changing the margin to some high value like 50% or 99% and giving those tokens instead of the ADA) or as an additional perk (in which case the value of the tokens given to the delegators is typically not that high, at least not now).
Regardless, you can, of course mint your own tokens, either manually as described in https://developers.cardano.org/docs/native-tokens/minting/ or using some third-party service like nmkr.io.