# 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