# Update NFT Schema

### Change Organization Owner

For the first time we create NFT\_Schema, we automatically create organization name to Schema owner. Such as `six.rocket_ticket`  organization name will be `six` . Then when we want to change owner or transfer the owner we now can use this msg.

```bash
sixd tx nftmngr change-org-owner <string_org_name> <new_owner_address> \
    --from <your_address_or_key> --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr change-org-owner six 6x1v23u9k5c8pwm87jtvxwwmuzt8nj250xu4lr4vh \
    --from alice --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

### Add new Action to schema

```json
{
  "name": "new_action",
  "desc": "New Action",
  "disable": false,
  "params": [
    {
      "name": "param1",
      "desc": "Param1",
      "data_type": "number",
      "required": true,
      "default_value": "10"
    }
  ],
  "when": "meta.GetBoolean('started') == true",
  "then": [
    "meta.SetNumber('points', meta.GetNumber('points') - params['param1'].GetNumber())"
  ]
}
```

```bash
sixd tx nftmngr add-action <string_schema_code> <encoded_base64_action> \
    --from <your_address_or_key> --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr add-action six-protocol.test_v071 \
    ewogICJuYW1lIjogIm5ld19hY3Rpb24iLAogICJkZXNjIjogIk5ldyBBY3Rpb24iLAogICJkaXNhYmxlIjogZmFsc2UsCiAgInBhcmFtcyI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAicGFyYW0xIiwKICAgICAgImRlc2MiOiAiUGFyYW0xIiwKICAgICAgImRhdGFfdHlwZSI6ICJudW1iZXIiLAogICAgICAicmVxdWlyZWQiOiB0cnVlLAogICAgICAiZGVmYXVsdF92YWx1ZSI6ICIxMCIKICAgIH0KICBdLAogICJ3aGVuIjogIm1ldGEuR2V0Qm9vbGVhbignc3RhcnRlZCcpID09IHRydWUiLAogICJ0aGVuIjogWwogICAgIm1ldGEuU2V0TnVtYmVyKCdwb2ludHMnLCBtZXRhLkdldE51bWJlcigncG9pbnRzJykgLSBwYXJhbXNbJ3BhcmFtMSddLkdldE51bWJlcigpKSIKICBdCn0K \
    --from alice --keyring-backend=os --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y \
    --chain-id fivenet --node https://rpc1.fivenet.sixprotocol.net:443
```

### Add new NFT Attribute

{% hint style="info" %}
Location = 0 => NFT Attribute

Location = 1 => Token Attribute
{% endhint %}

```bash
{
    "name": "new_attribute",
    "default_mint_value": {
        "boolean_attribute_value": {
            "value": false
        }
    },
    "data_type": "boolean",
    "required": true,
    "display_value_field": "value",
    "display_option": {
        "bool_true_value": "Yes",
        "bool_false_value": "No",
        "opensea": {
            "trait_type": "New Attribute"
        }
    }
}
```

encode New Attributes with base64 then use it to next command example

```bash
sixd tx nftmngr add-attribute ${schema_code} 0 ${BASE64_ATTRIBUTE} \
    --from <your_address_or_key> --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr show-attributes sixnetwork.nftexpo false \
    points,missions_completed,bonus_1 \
    --from 6x1q3566qhn4hnjf8l0zt90daew2ade2yc6l5usaq --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

### Add new token attribute

```bash
sixd tx nftmngr add-attribute ${schema_code} 1 ${BASE64_ATTRIBUTE} \
    --from <your_address_or_key> --keyring-backend=os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

### To Show or Hide multiple attributes in one command

{% hint style="info" %}
false => to hide

true => to show
{% endhint %}

```bash
sixd tx nftmngr show-attributes <string_schema_code> <true,false> <attribute_names> \
    --from <your_address_or_key> --keyring-backend os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr show-attributes sixnetwork.nftexpo false \
    missions_passed,missions_completed,jan_claim \
    --from alice --keyring-backend os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

### To disable action

Sometimes when we add new action we might want to disable some action that we don't need

{% hint style="info" %}
disable = true => To disable action

disable = false => To enable action
{% endhint %}

```bash
sixd tx nftmngr toggle-action <string_schema_code> \
    <string_action_name> <true,false> \
    --from <your_address_or_key> --keyring-backend os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr toggle-action six.rocket_ticket \
    disable_test true \ 
    --from alice --keyring-backend os \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet
```

### Update base URI of NFT Schema

When we hide original URI then we want to reveal it to publish URI we can use this message to set new base uri.

```bash
sixd tx nftmngr set-base-uri <string_schema_code> <string_url_new_baseUri> \
    --from <your_address_or_key> --keyring-backend os \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y
```

for example of this command should be:

```bash
sixd tx nftmngr set-base-uri six.rocket_ticket \
    https://dryotus.definix.com/ipfs/hahahahahahahahaah \
    --from alice --keyring-backend os \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet
```

### Add system actioner

A system\_actioner is Array of addresses that has permission to perform actions on behalf of admin or schema owner

```bash
sixd tx nftmngr add-system-actioner <schema_code> <actioner_address> \
    --from <your-address_or_your-key> --node https://rpc1.fivenet.sixprotocol.net:443 \
    --chain-id fivenet --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y 
```

for example of this command should be:

```bash
sixd tx nftmngr add-system-actioner Dee_Gen2 6x1v23u9k5c8pwm87jtvxwwmuzt8nj250xu4lr4vh \
    --from alice --keyring-backend os \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet
```

### Remove system actioner

Also we provided remove system actioner when the address is out of responsible

```bash
sixd tx nftmngr remove-system-actioner <schema_code> <actioner_address> \
    --from <your-address_or_your-key> --node https://rpc1.fivenet.sixprotocol.net:443 \
    --chain-id fivenet --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix -y 
```

for example of this command should be:

```bash
sixd tx nftmngr remove-system-actioner six.rocket_ticket 6x1v23u9k5c8pwm87jtvxwwmuzt8nj250xu4lr4vh \
    --from alice --keyring-backend os \
    --gas auto --gas-adjustment 1.5 --gas-prices 1.25usix \
    --node https://rpc1.fivenet.sixprotocol.net:443 --chain-id fivenet
```
