# Deposit phase

During the deposit phase, the user creates the data structures locally. This consists of a Secret and Nullifier number to increase security against brute force attacks and to make the system secure for double spend attacks. Additionally, the user creates their intentions, including which blockchain the transaction is going to be settled on, the target function, and its parameters. All of this is hashed and is called the user commitment. Finally, the leaf is created by hashing this commitment and some security parameters on the Smart Contracts. For security reasons, only dApp to same dApp communication is allowed at a protocol level. This ensures that only the intended recipient can access the message, and it helps to prevent any unwanted interference or disruptions to the transaction. By using SurferMonkey's evolved DACT-v2 messaging protocol, developers and users alike can enjoy a more secure, private, and efficient blockchain experience.
