# harberger economics

> Harberger tax is a property regime where the owner publicly declares the asset's price and anyone can buy it at that price. The owner pays a continuous tax proportional to the declared price. It eliminates speculative hoarding while preserving private property.

GitVerse adopts this model for tile ownership. Below is what it means in practice.

***

## The declared price

When you claim a tile, you set a **declared price** (minimum 0.01 ETH). This price has two functions:

1. **It's the buyout price.** Anyone can take your tile by paying you this price + a 10% fee.
2. **It's the tax base.** You pay 5% of this price per week, drawn from your deposit.

Higher price → harder to buy you out, but more tax. Lower price → cheaper to defend, but cheaper for others to take.

***

## The deposit

Your tile has a **deposit balance**, denominated in ETH. The contract draws weekly tax from this balance. As long as `deposit ≥ tax owed`, your tile is safe.

* Initial deposit on claim: **0.003 ETH** (lasts about 6 weeks at 0.01 ETH declared price)
* Add more anytime with `addDeposit(tileId)`
* Withdraw extras anytime with `withdrawDeposit(tileId, amount)` (after tax is settled)

If the deposit runs out, the next time someone (anyone) calls `pokeTax(tileId)`, the contract takes whatever is left as partial tax and **foreclosures** the tile. The tile is back on the market.

***

## Price decay

Long-held tiles become cheaper to buy out automatically, even if the owner doesn't change anything.

* Every **2 weeks**, the effective price drops by **20%**
* Floor: **10% of the original declared price** (or 0.01 ETH minimum, whichever is higher)
* Reset by calling `setPrice` (even to the same value — but a *higher* `setPrice` triggers appreciation tax)

This forces holders to actively re-price their tiles. A "set and forget" strategy slowly erodes your defensive premium.

***

## Appreciation tax

Raising your price isn't free. The contract charges **30% on the price increase**:

```
tax = (newPrice - effectivePrice) × 30%
split: 60% Treasury, 40% holder pool
```

Example: your tile is currently effective at 0.01 ETH. You set price to 0.02 ETH. The increase is 0.01 ETH. Tax = 0.003 ETH, drawn from your deposit (or you can send extra ETH in the same tx). 60% (0.0018 ETH) goes to Treasury, 40% (0.0012 ETH) flows to all tile holders (including you).

You can raise your price at most **3× the current effective price** in a single setPrice. Beyond that, you'd need to do it in multiple steps.

***

## Buyouts

To buy a tile from another holder:

```
cost = effectivePrice + (effectivePrice × 10%)
     = effectivePrice × 1.1
```

When the buyout executes:

* Previous owner receives `effectivePrice + their remaining deposit`
* The 10% fee is split: 90% to Treasury, 10% to holders pool
* You become the new owner with a fresh price = `effectivePrice`
* Any excess ETH you sent becomes your new deposit

There is **no minimum holding period**. If you buy someone's tile, someone else can immediately buy it from you at the new price + 10% fee.

***

## Foreclosure

If your deposit runs out and someone calls `pokeTax(tileId)`:

* The contract takes whatever is left of your deposit as partial tax.
* Your tile is marked as empty.
* The `TileForeclosed(tileId, prevOwner)` event is emitted.
* Anyone can now claim the tile fresh.

Your **accumulated fees** are NOT lost. Whatever you haven't claimed yet remains in your `pendingFees` balance and you can call `claimFees()` to withdraw it — even after foreclosure, even after you no longer own any tile.

***

## A worked example

| Action                                           | Result                                                                                                                         |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| You claim tile #42 with declaredPrice = 0.01 ETH | Deposit = 0.003 ETH, you're the owner                                                                                          |
| 1 week passes                                    | Tax owed ≈ 0.0005 ETH, deposit = 0.0025 ETH                                                                                    |
| You `addDeposit(42)` with 0.01 ETH               | Deposit = 0.0125 ETH                                                                                                           |
| Someone calls `buyoutTile(42)` paying 0.011 ETH  | They become owner; you receive 0.01 ETH + 0.0125 ETH = 0.0225 ETH. 0.001 ETH fee splits 0.0009 to Treasury + 0.0001 to holders |
| You `claimFees()` later                          | You collect your holder-share accrued while you owned the tile                                                                 |

Net for you: you spent 0.02 ETH (0.01 admission + 0.01 added deposit), you got back 0.0225 ETH + your holder share. Profit comes from the buyout premium plus your accumulated fees.


---

# 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://gitverse.gitbook.io/gitverse-docs/harberger-economics.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.
