i've been following this example to see how to transfer WSOL from inside the transfer hook:


at the bottom there is a small note that the user has to 'approve' the delegate before the transfer can happen, and indeed, if i make a call to approve before transfer_checked then the transfer works just fine.

However, how does this work in the wider ecosystem? I don't really understand how e.g. phantom should know to prepend a transfer instruction with an approve for the correct amount and get the user to sign for it, is there some mechanism by which to do that?

2 Answers 2


There's no mechanism to make that obvious at the moment, but perhaps a standard will emerge for "tokens that require additional approval before transferring", along with some tooling for using these kinds of tokens.

This might be for the best, because it's not a great experience to surprise people with additional fees.


So basically you are saying it didn't require a second sign?

Idk how to reply

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.