Receiving Algo payments - best practices?

What’s the recommended model for receiving payments from a large number of users?

My limited understanding is that incoming payments could potentially use the note field to specify the purpose of the payment. But wallet support may be limited and it is not clear how to force the payer to include the right information in the note. (Is the note designed for the payer’s convenience or the receivers?)

Or is the best practice for the receiver to generate a new address for each incoming payment? And later, to send the incoming amounts to another address, closing the temporary address? This seems like it would work ok for Algo payments (above the min balance), but not so well for named asset payments (the receiver would have to provide min balance in advance).

As far as I can tell, exchanges that support Algo deposits create a new address for each user to deposit into. (as described in previous paragraph)

I’ve been considering BitGo to receive Algo payments. But BitGo API support for Algo is different from other coins they support. Normally in BitGo one wallet (secret) is generated, then many addresses created from that wallet. But for Algo, it is one address per wallet. This makes Algo less suited for receiving payments when using BitGo API. I’m trying to understand why BitGo requires a new wallet for each Algo address. And I’m trying to understand what this community considers the best way to disambiguate incoming payments.

Any help is appreciated. Thanks.


In the question above, you suggested several valid ( and correct ! ) ways the Algorand network can be used to receive payments. An additional way I can think of would be to create an additional account that could only receive money if a specific amount of money is being sent.
( that way, you could ensure the “payment” for a specific service would be either paid fully or not paid at all )

I’m not sure which method is the best one. It strongly depends on the backend you’re going to implement that would interface with the Algorand network. ( and even when doing so, more than one method could be considered a “good” choice )

My suggestion is that you’ll just try implement it and see how it works for you. If you’ll run into technical difficulties, please feel free to use this forum :wink: