# Protobuf Solidity Generator

NUTS Platform supports financial instruments with properties and parameters of various types, including complex struct. In order to address this requirements, NUTS Platform introduces a generic serialization/deserialization tools where instrument developers can use Protocol Buffer to define custom data structure, and the tool generates serialization/deserialization stubs that converts the custom data structure from and to bytes.

NUTS Platform is also designed to be forward compatible and should support upgrade. Even though NUTS Platform logic can be upgraded using Proxy, data format upgrade is more trickier. Protocol Buffer is extensible and works well in data structure upgrade.

For more information about our Protocol Buffer Solidity Generator, please refer to the [repo](https://github.com/nutsfinance/solidity-protobuf).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nuts.finance/master/implementation/protobuf-solidity-generator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
