# Client The Client provides the interface of interaction between an End User and the rest of the Swap stack. ## Core The core of the Client library aims to be protocol agnostic, such that it may be reused for executing alternate protocols. The general idea on how to achieve this desired generality at the core of the Client is based on: - The Daemon pushes to Client what the next available actions are. This is derived from Daemon's Protocol State. - Client display choices available to the End User, and the latter submits her choice. ## Swap-specific In practice Client must produce auxiliary data in order to comply with the requirements of a chosen option, such as providing signatures etc. However the specifics for each protocol were left outside of the core of the Client library. ## meeting Daemon must do all sig verifications, Client may. 1. Sending cryptographic material from client to daemon: signatures, partially valid signatures (encrypted sigs/musig msgs, priv xmr view-key, all pub keys) full lock tx without witness for locking ( ) cancel fully signed musig buy encrypted signature all txs before pblishing the lock bobs client generate keys 2. Daemon to client