# How it works

Unlike cloud-based CMS systems that use databases and teams, Urchin manages data by verifying a single owner via a Solana compatible wallet. That owner can design their CMS system and expand it as necessary and transactions will encur fees from the owners wallet.&#x20;

In configuring your CMS, Urchin offers a basic set of composable data models to organize your system:

* *templates* - blueprints to store you structured data (e.g. what data your cooking blog posts should each include).
* *entries* - the data that populates a template (e.g. title: Chicken Noodle Soup, ingredients: ...).
* *taxonomie*s - tags or categories to help organize all your entries (e.g. soup, winter).
* *assets* - file storage that can be referenced within entries (e.g. picture of chicken soup on a table).

In useage, Urchin is first initialized and bound to an owners wallet:

```javascript
const cms = urchin({payer, cluster});
```

Next, call methods to create and update what should be included in a transaction payload:

```javascript
cms.template.create(...);
```

Finally, execute the transaction:

```javascript
cms.process();
```


---

# 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://urchin.gitbook.io/overview/how-it-works.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.
