diff --git a/README.md b/README.md
index 284d2af93..03e36f799 100644
--- a/README.md
+++ b/README.md
@@ -8,32 +8,44 @@ For more information on TMSP, motivations, and tutorials, please visit [our blog
## Message types
+TMSP requests/responses are simple Protobuf messages. Check out the [schema file](https://github.com/tendermint/tmsp/blob/master/types/types.proto).
+
#### AppendTx
* __Arguments__:
- * `TxBytes ([]byte)`
+ * `Data ([]byte)`: The request transaction bytes
* __Returns__:
- * `Code (int8)`
- * `Result ([]byte)`
- * `Log (string)`
+ * `Code (uint)`: Response code
+ * `Data ([]byte)`: Result bytes, if any
+ * `Log (string)`: Debug or error message
* __Usage__:
- Append and run a transaction. The transaction may or may not be final.
+ Append and run a transaction. If the transaction is valid, returns CodeType.OK
#### CheckTx
* __Arguments__:
- * `TxBytes ([]byte)`
+ * `Data ([]byte)`: The request transaction bytes
* __Returns__:
- * `Code (int8)`
- * `Result ([]byte)`
- * `Log (string)`
+ * `Code (uint)`: Response code
+ * `Data ([]byte)`: Result bytes, if any
+ * `Log (string)`: Debug or error message
* __Usage__:
Validate a transaction. This message should not mutate the state.
+ Transactions are first run through CheckTx before broadcast to peers in the mempool layer.
+ You can make CheckTx semi-stateful and clear the state upon `Commit`, to ensure that all txs in the blockchain are valid.
-#### GetHash
+#### Commit
* __Returns__:
- * `Hash ([]byte)`
- * `Log (string)`
+ * `Data ([]byte)`: The Merkle root hash
+ * `Log (string)`: Debug or error message
* __Usage__:
- Return a Merkle root hash of the application state
+ Return a Merkle root hash of the application state.
+
+#### Query
+ * __Arguments__:
+ * `Data ([]byte)`: The query request bytes
+ * __Returns__:
+ * `Code (uint)`: Response code
+ * `Data ([]byte)`: The query response bytes
+ * `Log (string)`: Debug or error message
#### Flush
* __Usage__:
@@ -41,22 +53,27 @@ For more information on TMSP, motivations, and tutorials, please visit [our blog
#### Info
* __Returns__:
- * `Data ([]string)`
+ * `Data ([]byte)`: The info bytes
* __Usage__:
- Return an array of strings about the application state. Application specific.
+ Return information about the application state. Application specific.
#### SetOption
* __Arguments__:
- * `Key (string)`
- * `Value (string)`
+ * `Key (string)`: Key to set
+ * `Value (string)`: Value to set for key
* __Returns__:
- * `Log (string)`
+ * `Log (string)`: Debug or error message
* __Usage__:
Set application options. E.g. Key="mode", Value="mempool" for a mempool connection, or Key="mode", Value="consensus" for a consensus connection.
Other options are application specific.
## Changelog
+### Feb 14th, 2016
+
+* s/GetHash/Commit/g
+* Document Protobuf request/response fields
+
### Jan 23th, 2016
* Added CheckTx/Query TMSP message types