I thought i posted on this a while ago, but i guess it never went in so sorry for taking so long. im going to multi quote the post so i can point out problems.
1 Type Address is call the Staking Address
Where you can store coins , but it stakes the coins so you gain your interest,
Whenever you send coins out of this type address , then you are charged the 10% which goes to the superfly.
2nd type address is called Non-Staking Address.
Any coins store here do not stake , so they do not gain interest.
You can send from this address without paying the fee.
The quote above doesnt work. because of when you stake you have the option to send the staking amount to any wallet address you choose (staking into an exchange) this system will allow a user to completely bypass the fee system with all staked coins. of course the coins in these wallets would still need to be sent out to get out. or would they? (see NOTE at the bottom)
Any Exchange would keep all of their coins in the Non-Staking type Addresses, so they would never be charged the 10% fee , and can send out the exact amount purchased.
this also leaves the problem that, most exchanges do stake coins, they kind of need to in order to stay solvent. especially when there is no trading fees in the actual trades themselves (this is how cryptsy stays making money, stake pos coins and put them back into the market)
In general:
the two different types of addresses is the path we are going to be taking with what i suggested since it seems to be the only way to solve the problem of different fee structures depending on who has the address.
the only glaring problem that keeps your suggestion from working at all is that you want to limit staking based on address. when a coin stakes it doesnt do it based on addresses. its random. it digs through the wallet and finds ANY transactions that:
1. arent spent.
2. IsMine (meaning belongs to the wallet, not address but whole wallet)
3. has a value greater than the minimum input value (which is typically 0)
4. is available to the coinControl (thats the simplest way for me to explain it without going into what the coin control is and how it works)
so YES it is possible to have it check the output points for the inputs of the next stake to make sure the address in the output point wasnt a non stake address(which it doesnt even do directly, it does this using the receiving addresses public key so thats another problem). but this would require changing the whole way the coins stake and has a (i want to say moderately high) chance of messing up the already existing blockchain because of the way it has been staking since staking started.
NOTE: although i have not tested to confirm this. but i believe it is possible to send coins internally in the wallet from addr to addr (since addresses are just keys not accounts) without it going to the blockchain which would be an easy way to abuse your two address format system (THIS IS NOT CONFIRMED, IT SEEMS TO MAKE SENSE TO BE TRUE BUT I DIDNT TEST IT YET).
the mode changes i was suggesting would only allow one type of address to be used when a wallet was running. either exchange addresses or normal ones.
however most of the point i was making was with the staking process