> For the complete documentation index, see [llms.txt](https://learn.squirrel365.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.squirrel365.io/squirrel-addon-documentation/squirrel-helper-library/javascript/getting-started/the-json-files.md).

# The JSON files

As covered in the [Property Panel](/squirrel-addon-documentation/building-an-addon/property-panel.md) section there are three JSON files which are needed for the add-on to work.  They handle your state definition, communication between the add-on and Squirrel and how to display the property panel in the designer.

<details>

<summary>defaultState.json</summary>

The default state is a JSON representation of the data model you want Squirrel to use when it saves a project with your addon in, and when it adds your addon to the Squirrel canvas for the first time.

This JSON object is available inside your addon via the getter [getCopyOfState()](/squirrel-addon-documentation/squirrel-helper-library/angular/methods/getcopyofstate.md) this returns a copy of the state object.  To set properties of state you need to send the data to Squirrel using the [sendToSquirrel()](/squirrel-addon-documentation/squirrel-helper-library/javascript/methods/sendtosquirrel.md) method.  If the property you are updating has been bound to a spreadsheet cell in Squirrel, the data you pass will be inserted into the relevant cell(s).

</details>

<details>

<summary>messageBindings.json</summary>

This file lets Squirrel know whether the property in defaultState in the addon is to be used to:

**send** data from the addon to Squirrel, &#x20;

**receive** data from Squirrel into the addon or

**both** send and receive data

</details>

<details>

<summary>propertyPanel.json</summary>

This file contains a JSON representation of the property panel.  You create the panel using a collection of pre-defined [elements ](/squirrel-addon-documentation/building-an-addon/property-panel/property-panel-elements.md)available.

</details>
