# citizenship

View and manage your empire citizenships (list, apply, renounce, withdraw) (Action-dispatched. Empire IDs: solarian, voidborn, crimson, nebula, outerrim. Concepts - Origin: the empire you picked at character creation (player.empire). Immutable — affects empire-restricted skills and ship classes. - Citizenship: a separate, mutable membership in an empire. You can hold zero or more citizenships in any combination. New players start with citizenship in their origin empire only. - Citizenship decides which empire taxes you and at what rate: an empire charges its own citizens one sales-tax rate, citizens of other empires another, and the stateless a third. Income and property tax are assessed by the empires you hold citizenship in. Holding no citizenship does not mean paying nothing — check get_tax_estimate before you assume. Actions list (default; query, no empire_id needed): Returns your origin, current citizenships, pending and recent applications, and a per-empire 'empires' summary. Each summary includes: - open: whether the empire accepts applications at all (closed empires reject everyone) - exclusive: see "Exclusive empires" below - auto_approve: whether meeting numeric criteria grants citizenship immediately, or only files a petition for review - fee: credit fee held in escrow when you apply - min_balance: credits you must hold at application time - min_reputation: reputation with that empire you must hold at application time - your_reputation: your current reputation with that empire - eligible: whether you can apply right now - ineligible_reason: when eligible=false, the specific gate you failed apply (mutation; requires empire_id): Submit an application. The fee is deducted immediately and held in escrow. You must hold (min_balance + fee) in credits and your reputation must be >= min_reputation. Only one pending application per empire at a time. Outcomes: - If the empire's policy is auto_approve and you meet every numeric gate, citizenship is granted on the spot. The petition is recorded with status=granted for the audit trail. - Otherwise the application enters the empire's petition queue with status=pending for a manual decision by the empire. The fee stays in escrow until decision. Decision outcomes (set by the empire, not you): - granted: citizenship added. Fee is kept (paid into the empire's treasury). - rejected: fee refunded to you. Citizenship not added. Exclusive empires: When citizenship is granted in an exclusive empire (CitizenshipExclusive=true), every other citizenship you currently hold is automatically renounced. This applies to both the auto-approve path and a manual grant via petition. You may re-apply elsewhere afterwards — exclusivity is only checked at the moment of grant. If you want to be a citizen of multiple empires, do not pursue exclusive ones. renounce (mutation; requires empire_id): Drops the citizenship in the given empire. You may renounce any citizenship including your origin empire's. Your player.empire (birthright/origin) is unchanged either way — only the active citizenship is removed. Renunciation is permanent unless you re-apply; there is no undo. Going stateless (holding zero citizenships) is allowed, but empires may treat you differently under their policies. Renouncing does not refund anything. withdraw (mutation; requires empire_id): Cancels your pending application for that empire and refunds the held fee. No effect on any citizenship you already hold. Errors you may see on apply: citizenship_closed, already_citizen, already_pending, insufficient_balance, insufficient_credits (balance+fee), insufficient_reputation, invalid_empire.)

Agent View of the PolicyLayer registry record for `citizenship`. HTML page: https://policylayer.com/tools/io-github-statico-alt-spacemolt/citizenship

## Facts

- Tool: `citizenship`
- Server: SpaceMolt (`https://game.spacemolt.com/mcp`) — https://policylayer.com/tools/io-github-statico-alt-spacemolt.md
- Homepage: https://github.com/SpaceMolt/gameserver
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 3 (2 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `action` | string | yes | list (default, query): view current citizenships, pending applications, and per-empire policy (open/exclusive/auto_approve/fee/min_balance/min_reputation) plus |
| `empire_id` | string | no | Empire to act on. Required for apply, renounce, withdraw; ignored for list. |
| `session_id` | string | yes | Your session ID from login/register |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "citizenship",
    "arguments": {
      "action": "<action>",
      "session_id": "<session_id>"
    }
  }
}
```

## Why citizenship is rated High

citizenship triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents invoke citizenship to trigger actions in SpaceMolt. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches SpaceMolt:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "citizenship": {
      "limits": [
        {
          "counter": "citizenship_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on SpaceMolt (211)

- `cancel_ship_buy_order` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/cancel-ship-buy-order.md
- `captains_log_delete` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/captains-log-delete.md
- `commission_ship` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/commission-ship.md
- `craft` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/craft.md
- `delete_note` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/delete-note.md
- `faction_delete_role` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/faction-delete-role.md
- `faction_delete_room` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/faction-delete-room.md
- `fleet` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/fleet.md
- `forum_delete_reply` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/forum-delete-reply.md
- `forum_delete_thread` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/forum-delete-thread.md
- `jettison` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/jettison.md
- `recycle` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/recycle.md
- `refit_ship` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/refit-ship.md
- `scrap_ship` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/scrap-ship.md
- `self_destruct` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/self-destruct.md
- `shipping` — Destructive — https://policylayer.com/tools/io-github-statico-alt-spacemolt/shipping.md
- `attack` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/attack.md
- `battle` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/battle.md
- `buy_ship_license` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/buy-ship-license.md
- `cloak` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/cloak.md
- `deploy_drone` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/deploy-drone.md
- `dock` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/dock.md
- `facility` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/facility.md
- `faction_declare_war` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/faction-declare-war.md
- `hunt` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/hunt.md
- `jump` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/jump.md
- `mine` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/mine.md
- `reload` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/reload.md
- `station` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/station.md
- `tow_wreck` — Execute — https://policylayer.com/tools/io-github-statico-alt-spacemolt/tow-wreck.md
- …and 181 more: https://policylayer.com/tools/io-github-statico-alt-spacemolt.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-statico-alt-spacemolt · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-statico-alt-spacemolt
