> For the complete documentation index, see [llms.txt](https://docs.ohalee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohalee.com/products/networkeconomy/command-and-permissions.md).

# Command & Permissions

## Commands

<table><thead><tr><th width="215">Command</th><th width="200">Parameters</th><th width="225">Permission</th><th>Capabilities</th></tr></thead><tbody><tr><td>/balance</td><td>[player] [currency]</td><td>networkeconomy.balance</td><td>Show your own balance, or another player's. Aliases: <code>/bal</code>, <code>/money</code></td></tr><tr><td>/pay</td><td>&#x3C;player> &#x3C;amount> [currency]</td><td>networkeconomy.pay</td><td>Atomically send money to another player, on any server</td></tr><tr><td>/baltop</td><td>[page] [currency]</td><td>networkeconomy.baltop</td><td>Richest accounts across the whole network. Aliases: <code>/balancetop</code>, <code>/topbalance</code></td></tr><tr><td>/eco</td><td>&#x3C;give|take|set|reset> &#x3C;player> [amount] [currency]</td><td>networkeconomy.admin</td><td>Administrative balance management. Aliases: <code>/economy</code>, <code>/neco</code></td></tr><tr><td>/transactions</td><td>[player]</td><td>networkeconomy.history</td><td>Open the transaction history GUI. Aliases: <code>/history</code>, <code>/thistory</code></td></tr></tbody></table>

## Permissions

<table><thead><tr><th width="290">Permission</th><th width="110">Default</th><th>Capabilities</th></tr></thead><tbody><tr><td>networkeconomy.balance</td><td>true</td><td>View your own balance</td></tr><tr><td>networkeconomy.balance.others</td><td>op</td><td>View other players' balances with <code>/balance &#x3C;player></code></td></tr><tr><td>networkeconomy.pay</td><td>true</td><td>Send money with <code>/pay</code></td></tr><tr><td>networkeconomy.baltop</td><td>true</td><td>View the network balance top</td></tr><tr><td>networkeconomy.history</td><td>true</td><td>Open your own transaction history</td></tr><tr><td>networkeconomy.admin</td><td>op</td><td><code>/eco</code>, and viewing another player's history with <code>/transactions &#x3C;player></code></td></tr></tbody></table>

## Amount formats

Wherever an amount is accepted, these forms all work:

<table><thead><tr><th width="200">Input</th><th>Value</th></tr></thead><tbody><tr><td><code>250</code></td><td>250</td></tr><tr><td><code>19.99</code></td><td>19.99</td></tr><tr><td><code>1,500</code></td><td>1500 — commas are ignored</td></tr><tr><td><code>1.5k</code></td><td>1,500</td></tr><tr><td><code>10m</code></td><td>10,000,000</td></tr><tr><td><code>2b</code></td><td>2,000,000,000</td></tr></tbody></table>

Only strictly positive amounts are accepted; `0`, negatives and unparseable input are rejected with the `invalid-amount` message. The parsed value is then rounded half-up to the currency's `decimals`.

## /balance

```
/balance                # your own default-currency balance
/balance gems           # your own gems balance
/balance Notch          # another player, default currency
/balance Notch gems     # another player, specific currency
```

The first argument is treated as a currency if it matches a currency id **and** it is the only argument; otherwise it is treated as a player name. Offline players are resolved from the accounts table, so you can look up anyone who has ever joined the network — not just players on your server.

`/balance <player>` requires `networkeconomy.balance.others`.

## /pay

```
/pay Notch 500
/pay Notch 1.5k coins
```

The transfer runs as **one database transaction**: either both sides apply or neither does. It works regardless of which server the recipient is on, or whether they are online at all. If the recipient happens to be online on *your* server they receive the `pay-received` message immediately.

Behaviour is shaped by the `commands.pay` config section:

* `minimum-amount` — amounts below this are rejected.
* `deny-self` — paying yourself is blocked.
* `tax-percent` — a percentage is taken off the amount the receiver gets.

A currency with `payable: false` cannot be sent, and is not offered in tab completion.

{% hint style="info" %}
With a tax configured, the sender is debited the full amount and the receiver credited the net; the difference is removed from circulation. This split is what makes a taxed `/pay` two operations rather than one atomic transfer.
{% endhint %}

## /baltop

```
/baltop            # page 1, default currency
/baltop 3          # page 3
/baltop 2 gems     # page 2 of the gems ranking
```

The ranking is computed from the shared database, so it covers the **entire network**. Pages are cached for `commands.baltop.cache-seconds` (default 60) to keep repeated use from hammering the database, which means a very recent transaction may take up to that long to move someone in the list.

Players with no known name are shown by the first 8 characters of their UUID.

## /eco

```
/eco give Notch 1000
/eco take Notch 250 coins
/eco set Notch 0
/eco reset Notch
/eco reset Notch gems
```

<table><thead><tr><th width="140">Action</th><th>Effect</th></tr></thead><tbody><tr><td>give</td><td>Atomically adds the amount</td></tr><tr><td>take</td><td>Atomically removes the amount, failing if the funds are not there</td></tr><tr><td>set</td><td>Overwrites the balance to an absolute value</td></tr><tr><td>reset</td><td>Restores the currency's <code>starting-balance</code>. Takes no amount argument</td></tr></tbody></table>

All four work on offline players and log the acting staff member in the transaction's reason (`admin:<name>`), so admin adjustments are permanently attributable in the audit log. `take` reports insufficient funds rather than pushing a balance negative.

{% hint style="info" %}
Note the argument positions: `reset` has no amount, so its optional currency is the **third** argument (`/eco reset Notch gems`) while the others take it fourth (`/eco give Notch 10 gems`).
{% endhint %}

## /transactions

Opens a paginated GUI of the audit log, newest first. Each item is coloured by type:

<table><thead><tr><th width="200">Type</th><th width="150">Item</th><th>Meaning</th></tr></thead><tbody><tr><td>DEPOSIT / TRANSFER_IN</td><td>Emerald</td><td>Money came in</td></tr><tr><td>WITHDRAW / TRANSFER_OUT</td><td>Redstone</td><td>Money went out</td></tr><tr><td>SET</td><td>Paper</td><td>Balance overwritten by an admin</td></tr><tr><td>RESET</td><td>Barrier</td><td>Balance reset to the starting amount</td></tr></tbody></table>

Every entry shows the type, the resulting balance, the counterparty (for transfers), the reason, **which server the change happened on**, and the timestamp. Arrows in the bottom row page back and forward; the book in the middle shows the current page.

`/transactions <player>` requires `networkeconomy.admin` and works for offline players.
