> For the complete documentation index, see [llms.txt](https://sixnetwork.gitbook.io/nft-gen-2-tech-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sixnetwork.gitbook.io/nft-gen-2-tech-doc/getting-started/sdk-for-go/examples.md).

# Examples

## Create NFT Schema

```go
// Read JSON data from file
jsonData, err := ioutil.ReadFile("schema.json")
if err != nil {
	fmt.Println(err)
	return
}

// Decode JSON data into a map[string]interface{} variable
var data map[string]interface{}
err = json.Unmarshal(jsonData, &data)
if err != nil {
	fmt.Println(err)
	return
}

// Encode the JSON data as a base64 string
base64Data := base64.StdEncoding.EncodeToString(jsonData)

msg := &nftmngrtypes.MsgCreateNFTSchema{
	Creator:         client.ConnectedAddress,
	NftSchemaBase64: base64Data,
}
txResponse, err := client.GenerateOrBroadcastTx(msg)
if err != nil {
	fmt.Println(err)
	return
}
```

## Create NFT Metadata

```go
// Read JSON data from file
jsonData, err := ioutil.ReadFile("metadata.json")
if err != nil {
	fmt.Println(err)
	return
}

// Decode JSON data into a map[string]interface{} variable
var data map[string]interface{}
err = json.Unmarshal(jsonData, &data)
if err != nil {
	fmt.Println(err)
	return
}

// Encode the JSON data as a base64 string
base64Data := base64.StdEncoding.EncodeToString(jsonData)

msg := &nftmngrtypes.MsgCreateMetadata{
	Creator:       client.ConnectedAddress,
	NftSchemaCode: "six-protocol.develop_v220",
	TokenId:       "1",
	Base64NFTData: base64Data,
}

txResponse, err := client.GenerateOrBroadcastTx(msg)
if err != nil {
	fmt.Println(err)
	return
}
```

## Perform Action by Admin

```go
refID := uuid.New()
msg := &nftmngrtypes.MsgPerformActionByAdmin{
	Creator:       client.ConnectedAddress,
	NftSchemaCode: "six-protocol.develop_v220",
	TokenId:       "1",
	Action:        "test_read_nft",
	RefId:         refID.String(),
	Parameters:    []*nftmngrtypes.ActionParameter{},
}

txResponse, err := client.GenerateOrBroadcastTx(msg)
if err != nil {
	fmt.Println(err)
	return
}
```
