# tx\_extra

```
  struct tx_extra_padding
  {
    size_t size;

    // load
    template <template <bool> class Archive>

    // store
    template <template <bool> class Archive>
  };
```

```
  struct tx_extra_pub_key
  {
    crypto::public_key pub_key;
  };

  struct tx_extra_nonce
  {
    std::string nonce;
  };
```

```
  struct tx_extra_additional_pub_keys
  {
    std::vector<crypto::public_key> data;
  };

  struct tx_extra_mysterious_minergate
  {
    std::string data;
  };
```

```
  struct tx_extra_merge_mining_tag
  {
    struct serialize_helper
    {
      tx_extra_merge_mining_tag& mm_tag;

    };

    size_t depth;
    crypto::hash merkle_root;

    // load
    template <template <bool> class Archive>

    // store
    template <template <bool> class Archive>
  };
```

tx\_extra\_field

```
  typedef boost::variant<tx_extra_padding, tx_extra_pub_key, tx_extra_nonce, tx_extra_merge_mining_tag, tx_extra_additional_pub_keys, tx_extra_mysterious_minergate> tx_extra_field;
```
