Users shouldn't map a federation name to massive custodial wallets like Binance or Coinbase without a specific memo. If they do, any funds sent to their federation address will be lost in the exchange's master wallet.
Acceptance Criteria:
Implementation Steps:
-
In the registration controller, create an array: const BLOCKED_EXCHANGES = ["GA5XIGA5C7QTPTWXQYYUGCGQFBLOUZLYVVKXUHZHZWBYEAIELE4KZTOG", /* add 2 more known exchange keys */];
-
Add a check: if (BLOCKED_EXCHANGES.includes(address)) { ... }
-
Return a 400 error: "Cannot map federation addresses directly to custodial exchange master wallets."
Branching Instructions:
Push your changes to this feature branch:
git checkout -b security/block-exchange-addresses
Users shouldn't map a federation name to massive custodial wallets like Binance or Coinbase without a specific memo. If they do, any funds sent to their federation address will be lost in the exchange's master wallet.
Acceptance Criteria:
Maintain a small array of known exchange master public keys.
Reject the registration if the incoming address matches any key in the array.
Implementation Steps:
In the registration controller, create an array: const BLOCKED_EXCHANGES = ["GA5XIGA5C7QTPTWXQYYUGCGQFBLOUZLYVVKXUHZHZWBYEAIELE4KZTOG", /* add 2 more known exchange keys */];
Add a check: if (BLOCKED_EXCHANGES.includes(address)) { ... }
Return a 400 error: "Cannot map federation addresses directly to custodial exchange master wallets."
Branching Instructions:
Push your changes to this feature branch:
git checkout -b security/block-exchange-addresses