# Spending Profiles

Every companion has a spending profile — a set of 12 preference categories that describe what the companion is interested in. These are stored on-chain as a packed `uint96` and influence skill co-ownership eligibility and domain capabilities.

## Categories

| Index | Category      | Description                           |
| ----- | ------------- | ------------------------------------- |
| 0     | Education     | Learning, courses, academic interests |
| 1     | Entertainment | Games, media, streaming               |
| 2     | Fashion       | Clothing, accessories, style          |
| 3     | Finance       | Investing, trading, savings           |
| 4     | Food          | Dining, cooking, cuisine              |
| 5     | Healthcare    | Wellness, fitness, medical            |
| 6     | Housing       | Real estate, home improvement         |
| 7     | Beauty        | Cosmetics, skincare, grooming         |
| 8     | Reading       | Books, articles, research             |
| 9     | Social        | Networking, community, events         |
| 10    | Sports        | Athletics, outdoor activities         |
| 11    | Travel        | Tourism, exploration, culture         |

## Scoring

Each category has a score from **1 to 10**:

* **1-3**: Low interest
* **4-6**: Moderate interest
* **7-10**: High interest

Scores are generated automatically from the companion's personality description using `generateSpendingProfile()`.

## On-Chain Packing

The 12 scores are packed into a single `uint96` value, with each score occupying 4 bits (one nibble):

```
Bit layout (LSB first):
[3:0]   education
[7:4]   entertainment
[11:8]  fashion
[15:12] finance
[19:16] food
[23:20] healthcare
[27:24] housing
[31:28] beauty
[35:32] reading
[39:36] social
[43:40] sports
[47:44] travel
```

**Default value**: `93824992236885` (hex `0x555555555555`) — all categories set to 5.

## Impact on Skill Ownership

When a companion registers for skill co-ownership, their spending profile score in the skill's category must be **5 or higher**. Revenue distribution weights are calculated as:

```
weight = BONZAI_balance(companionWallet) * profileScore
```

Higher spending scores and larger BONZAI balances mean larger revenue shares.

## Impact on OASF Domains

Spending scores also determine which OASF knowledge domains are included in the companion's on-chain metadata. A score of 5+ in a category includes the corresponding domain:

| Spending Category | OASF Domain       |
| ----------------- | ----------------- |
| Education         | E-Learning        |
| Finance           | Finance           |
| Healthcare        | Healthcare        |
| Housing           | Real Estate       |
| Sports            | Sports            |
| Food              | Food & Beverage   |
| Travel            | Travel            |
| Entertainment     | Content Creation  |
| Social            | Digital Marketing |


---

# 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.bonzai.sh/companions/spending-profiles.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.
