### Wallet CLI The general form is: ``` $ solana-wallet [common-options] [command] [command-specific options] ``` `common-options` include: * `--fee xyz` - Transaction fee (0 by default) * `--output file` - Write the raw Transaction to a file instead of sending it `command` variants: * `pay` * `cancel` * `send-signature` * `send-timestamp` #### Unconditional Immediate Transfer ```sh // Command $ solana-wallet pay 123 // Return ``` #### Post-Dated Transfer ```sh // Command $ solana-wallet pay 123 \ --after 2018-12-24T23:59:00 --require-timestamp-from // Return {signature: , processId: } ``` *`require-timestamp-from` is optional. If not provided, the transaction will expect a timestamp signed by this wallet's secret key* #### Authorized Transfer A third party must send a signature to unlock the tokens. ```sh // Command $ solana-wallet pay 123 \ --require-signature-from // Return {signature: , processId: } ``` #### Post-Dated and Authorized Transfer ```sh // Command $ solana-wallet pay 123 \ --after 2018-12-24T23:59 --require-timestamp-from \ --require-signature-from // Return {signature: , processId: } ``` #### Multiple Witnesses ```sh // Command $ solana-wallet pay 123 \ --require-signature-from \ --require-signature-from // Return {signature: , processId: } ``` #### Cancelable Transfer ```sh // Command $ solana-wallet pay 123 \ --require-signature-from \ --cancelable // Return {signature: , processId: } ``` #### Cancel Transfer ```sh // Command $ solana-wallet cancel // Return ``` #### Send Signature ```sh // Command $ solana-wallet send-signature // Return ``` #### Indicate Elapsed Time Use the current system time: ```sh // Command $ solana-wallet send-timestamp // Return ``` Or specify some other arbitrary timestamp: ```sh // Command $ solana-wallet send-timestamp --date 2018-12-24T23:59:00 // Return ``` ## Javascript solana-web3.js Interface *TBD, but will look similar to what the Wallet CLI offers wrapped up in a Javacsript object*