dynamic()
dynamic() represents whatever balance the intent wallet holds at execution time. Pass it as the amount for any action that should consume the output of the previous step.
dynamic() eliminates the need to predict it.
dynamic() is accepted by swap, lend, deposit, and custom. It is not accepted by assertCondition, which evaluates concrete conditions.
self()
self() resolves to the intent wallet address at execution time. The intent wallet is created per-transaction and its address is unknown before execution.
self() explicitly. Swap defaults to self() for intermediate actions and to the user’s wallet for the final action. It is available for unusual compositions where you need to be explicit about the recipient.