these are two Algorand Smart Contracts. Algorand Application can store state data. Application transactions are not able to send assets. That’s why the author, Vilijan Monev choose to use two smart contracts to handle the Algorand and ASA (Algorand Smart Asset). He uses transaction groups, and the App can enable or disable the execution of the group as a whole.
who will hold the asa in starting of application??
The asa_delegate_authority, see section “Initialization of application”