We need users to send our tokens (TKS) and have transaction fee paid with TKS, without worrying about getting native currency for tx fee. Is this possible on Stellar?
Transactions and operations can have different source accounts, which would allow for the account sending a payment and the account paying the transaction fees to be different. In practice, keeping a transaction fee account secure might be tricky, as you'd need to sign each transaction anyone submitted.
This is the account that originates the transaction. The transaction must be signed by this account, and the transaction fee must be paid by this account. The sequence number of this transaction is based off this account.
Operations are executed on behalf of the source account specified in the transaction, unless there is an override defined for the operation.
The transaction fee always has to be paid in XLM, but this would provide a way for your users to avoid needing to think about that.