Some parts I don't understand:
-snip-
You choose an exchange partner ->
You mean you have a list of partners and users just have to choose one when they want to trade?
-snip-
We collect data about the exchange (address, amount, etc) -> We send it over to the exchange via API ->
Why collect exchange data? I think this is precisely the request to the user as the normal exchange process without intermediaries.
-snip-
You send crypto directly to the exchange -> They send you the crypto -> You earn rewards from us in crypto!
(Cmiiw)So, basically you are only facilitating users with your (verified) accounts, or otherwise how do you get around that? Most of the top exchanges are implementing KYC at the moment. The risk of freezes is also greater because users can send directly to exchange addresses without you guaranteeing that it's "clean" money.
1st Question: That's correct, let's say there's FixedFloat, ChangeNow, and Coinbase (I wouldn't adopt Coinbase, just an example of a CEX) available to trade for BTC/USDT. My exchange would say that FixedFloat is offering $1 in BTC for 0.98 USDT, ChangeNow is offering $1 in BTC for 0.975 USDT, and Coinbase is offering $1 in BTC for 0.89 USDT. Let's also say that the user had a bad experience in the past using FixedFloat, so they decide to use ChangeNow. This means that they know how much USDT they are receiving, and which partner they are connecting to in order to preform an exchange from a partner.
2nd Question: By exchange data, I mean the rate the exchange is offering, and the address to send it to (and so on). I should have been more clear there, I won't collect any PII like IP addresses.
3rd Question: I will not be using any exchanges (unless there is a way to do this legally and safely, and people would like to have those exchanges as an option, CEXs that is) that require KYC or disallow 3rd party payments via API endpoints. DEXs and no-KYC instant exchanges would be the only exchanges avaliable. In the future, I might possibly add functionality for a user to use our site (for fee calculation, maybe an easier UI to use) to connect their API keys to the exchange's API to preform trades. Those keys wouldn't be stored, only as an ease-of-use feature (although I am not sure there is any demand for that).