Is it possible, or on the roadmap, to limit the balance of a custom asset in a wallet? This would be a great feature, in that smaller transaction/balances don’t always have the same level of KYC as larger ones. In other words, if you could implement “tiered” trust lines, the more onerous kyc requirements could be delayed (making initial sign up much easier)
Step 1: Set the
authorization required flag for your issuing account (?), this way nobody can create a trustline for your asset without your authorization.
Step 2: Require users to set a limit when creating a trustline. That's the second parameter in the CreateTrust operation. That is the maximum amount of asset tokens that their account may hold, any transaction exceeding that value will be rejected by the network.
Step 3: Since your asset is
authorization required, you need to confirm new trustlines with the AllowTrust operation. Simply check if the limits were set correctly and approve/deny accordingly.
If you have to enforce more specific rules, you need to check+approve/deny every single user transaction. There are two ways for this:
Require user accounts to have you as another signer for their account. Now they can't submit any transaction without you co-signing.
2) Multi operation transactions
Instead of permanently allowing trust, require your users to sandwich every payment in a set of [AllowTrust, Payment, RevokeTrust] operations. Now you also have to sign those transactions and the allowance will be atomic for that single payment operation.
Not sure if anyone has implemented that in a production environment yet but have a look at SEP-8, which describes a standardized way to handle your co-signing.