# Wrap up

We learned what the callPermit precompile is and how it can be used to create a gas-less flow in our dApp.

We generated a valid transaction data to relay.

Then, we learned how to collect the signature, before relaying it.

Finally, we saw how to dispatch the transaction on behalf of the user.
