I'm reading the source here: https://github.com/solana-labs/solana-program-library/blob/master/token/program/src/processor.rs But my Rust is not so fluent right now. Right around here: match source_account.delegate { COption::Some(ref delegate) if Self::cmp_pubkeys(authority_info.key, delegate) {...} _ => Self::validateOwner(...stuff...&source_account.owner) } I see the delegate consulted. It looks like if the authority_info is set to owner then even if delegate is set, it will run the "owner is signer" assertion rather than the "delegate is signer" assertion. But, I'm kind of hoping I'm wrong here. In my case, it'd be ideal for the delegate to have exclusive rights. I don't need exclusive rights, as long my delegation rights are dropped on transfer or close, and I'm able to detect that efficiently via a mention on the delegate account. So a follow up "Plan B" question is, if transfer rights are not exclusive, are the delegates cleared on transfer? Which I think is technically, no. Because I think what happens is the source account is just depleted of token quantity. So the delegate remains, there is just less quantity in the account for it to potentially be granted further authority over. Possibly zero quantity. Although actually, if the non delegate (i.e. the owner) is allowed to transfer a quantity over which the delegate has authority ( i.e. transfer in excess of non delegated quantity ), shouldn't that subtract from the delegate's holdings even if the delegate is not the signer? Or is it possible for the delegate to hold authority over more tokens than what are held by the account?