diff --git a/util/snatives/cmd/main.go b/util/snatives/cmd/main.go
index 5b1f6b49938e17bb27e986c7dc8aef6f20d8f4da..a04bca2c6fabacd937ac194d5cb7afb77383457f 100644
--- a/util/snatives/cmd/main.go
+++ b/util/snatives/cmd/main.go
@@ -9,12 +9,21 @@ import (
 
 // Dump SNative contracts
 func main() {
-	for _, contract := range vm.SNativeContracts() {
+	contracts := vm.SNativeContracts()
+	// Index of next contract
+	i := 1
+	for _, contract := range contracts {
 		solidity, err := templates.NewSolidityContract(contract).Solidity()
 		if err != nil {
 			fmt.Printf("Error generating solidity for contract %s: %s\n",
 				contract.Name, err)
 		}
 		fmt.Println(solidity)
+		if i < len(contracts) {
+			// Two new lines between contracts as per Solidity style guide
+			// (the template gives us 1 trailing new line)
+			fmt.Println()
+		}
+		i++
 	}
 }
diff --git a/util/snatives/templates/solidity_templates.go b/util/snatives/templates/solidity_templates.go
index 9fd0faf5c62c706637e7156fc0af56c2d0eb31f3..f4d87f16b566b6f21d2afcb2bd510f9b97574571 100644
--- a/util/snatives/templates/solidity_templates.go
+++ b/util/snatives/templates/solidity_templates.go
@@ -11,6 +11,7 @@ import (
 
 const contractTemplateText = `/**
 [[.Comment]]
+* @dev These functions can be accessed as if this contract were deployed at the address [[.Address]]
 */
 contract [[.Name]] {[[range .Functions]]
 [[.SolidityIndent 1]]
@@ -31,13 +32,13 @@ var functionTemplate *template.Template
 func init() {
 	var err error
 	functionTemplate, err = template.New("SolidityFunctionTemplate").
-			Delims("[[", "]]").
+		Delims("[[", "]]").
 		Parse(functionTemplateText)
 	if err != nil {
 		panic(fmt.Errorf("Couldn't parse SNative function template: %s", err))
 	}
 	contractTemplate, err = template.New("SolidityContractTemplate").
-			Delims("[[", "]]").
+		Delims("[[", "]]").
 		Parse(contractTemplateText)
 	if err != nil {
 		panic(fmt.Errorf("Couldn't parse SNative contract template: %s", err))
@@ -57,6 +58,11 @@ func NewSolidityContract(contract *vm.SNativeContractDescription) *solidityContr
 	return &solidityContract{contract}
 }
 
+func (contract *solidityContract) Address() string {
+	return fmt.Sprintf("0x%x",
+		contract.SNativeContractDescription.Address().Postfix(20))
+}
+
 // Generate Solidity code for this SNative contract
 func (contract *solidityContract) Solidity() (string, error) {
 	buf := new(bytes.Buffer)