Documentation

Factions, Crown, and Sovereignty

Faction alignment, frontier crown control, and the temporary winning state.

Section #30Updated 25/05/2026

Factions, Crown, and Sovereignty

Factions are minimal same-side coalitions

Players may remain independent, but the strategic unit of the game is the faction.

  • A faction is a group of players who do not fight each other.
  • Base faction membership is join-only in v1. A player can only be joined by the owner wallet of that PlayerProxy NFT. There is no normal base-protocol leave path in this slice.
  • The base game does not define ranks, taxation, treasuries, voting, officers, or internal governance.
  • Faction creation is payable and permissionless in v1 so players can form social/governance groups without protocol approval while attaching economic weight to creation. Native-token creation payments route immediately to the protocol treasury/mainframe bounty pool rather than staying in the registry. Each faction records a shared color palette for map and indexer consistency.
  • Each faction may bind a user-defined statute contract. Statutes are policy and hook surfaces for faction behavior, not hardcoded DAOs.
  • Tile control, hostility, eligibility, frontier access, crown victory, kernel hack progress, defeat, and exclusive control are evaluated at the faction level first.

Independent players fall back to their own player id. The canonical identity rule is:

effectivePlayer = factionId(player) != 0 ? factionId(player) : playerId;

Every side-level check should resolve through effectivePlayerId(playerId). Two faction members are the same side even when different wallets or player proxies initiate the action.

Statutes and proxy hooks

A statute is a faction-owned or faction-selected contract that implements user-defined behavior outside the base game. It can enforce internal rules, collect voluntary tithes, route resources, delegate construction authority, coordinate mutual defense, or implement voting.

The base protocol only records the statute address and exposes hook points. It does not inspect the statute's governance model.

PlayerProxy supports optional pre-call and post-call hooks around proxy-mediated execution. The pre-call phase can validate, block, or rewrite the target call. The post-call phase observes the actual successful target, value, calldata, and result bytes, which lets statutes account after execution. Hook failures revert the proxy-mediated call instead of silently corrupting accounting.

The crown condition

The map has a temporary winning state.

Let R be the current maximum occupied hex distance from the center tile.

The crown tiles are the six frontier corners on ring R:

  • (R, 0)
  • (R, -R)
  • (0, -R)
  • (-R, 0)
  • (-R, R)
  • (0, R)

A faction enters the winning state iff its effective side simultaneously controls all six crown tiles.

Crown stream

While a faction holds the full crown set, the protocol may open a single CFA victory stream to the faction's configured policy destination.

  • The stream is faction-level, not player-level.
  • The base protocol does not dictate how a statute or wrapper redistributes that inflow.
  • A faction may retain it, split it across members, route it to war budgets, or ignore it depending on its statute.

This creates a real winner/loser state without forcing every individual player payout rule into the core protocol.

Kernel hack side resolution

Kernel hack ownership is side-level. The hacking entity is the effective player, not merely the initiating wallet or player proxy.

  • Any member can contribute toward the faction's kernel hack.
  • Defensive and offensive actions by faction members count as same-side actions.
  • If a hack succeeds, the faction wins that condition.
  • Faction members cannot grief the hack by being treated as separate hostile players.
  • UI and indexers should present the hack using the faction color and identity.

If the initiating player has no faction, the hack falls back to that individual player id.

Crown break condition

The crown is temporary by design.

If any new tile is placed at distance R + 1, the current crown immediately breaks:

  • the existing crown stream stops
  • the frontier radius updates to R + 1
  • the six crown coordinates are recomputed on the new outer ring

The break condition is tied to placement, not mining.

Placement and logistics

Factions shape the frontier.

A new tile deed may only be placed if its coordinate is:

  • adjacent to a tile controlled by the placer's faction, or
  • adjacent to a void tile

Void tiles are reserved empty seams:

  • never buildable
  • never traversable
  • intended to stay empty in the live ruleset

For now the registry owner can still add or clear reserved void seams while the frontier ruleset is being scaffolded.

They create neutral fracture lines and logistics corridors that prevent the dominant faction from fully locking the frontier.

Which tiles must a faction control?

For any current frontier radius R, the effective side must hold these six crown coordinates at the same time:

  • (R, 0)
  • (R, -R)
  • (0, -R)
  • (-R, 0)
  • (-R, R)
  • (0, R)

R is the global maximum hex distance from origin of any placed tile. It is not the largest complete ring and it is not faction-specific. One newly placed far-out tile can move the active crown for everyone.

Example when R = 3 on an irregular, partially filled map:

Irregular crown-control tile example

The highlighted orange hexes are the only tiles that matter for crown control in that example. A faction does not need to own every tile on the outer ring, and the map does not need to be a perfect filled radius-R hex. It only needs those six axial corner positions simultaneously.

Important edge cases:

  • Gaps do not change the formula. Empty, unplaced, or void coordinates elsewhere on the map do not move the crown tiles.
  • Other frontier tiles do not count. A tile can be on the radius-R outer ring and still not be one of the six crown coordinates.
  • Unplaced crown coordinates block the crown. If one of the six target coordinates does not have a placed tile, no faction controls the complete crown yet.
  • A single far-out placement can invalidate an existing crown. If the active radius is 3 and any player places a tile at (-4, 4), that coordinate has hex distance 4, so R becomes 4. The old radius-3 crown stops being valid immediately, even if one faction still controls all six radius-3 corners.
  • The active crown is always on the current outermost occupied distance. After (-4, 4) is placed, the six active objective coordinates become (4,0), (4,-4), (0,-4), (-4,0), (-4,4), and (0,4). If only (-4,4) exists among those six, nobody controls the crown yet.
  • Radius changes recompute the objective globally. The recompute applies to every faction at once; there is no separate faction crown radius.
  • Radius 0 is degenerate. At bootstrap, all six crown coordinates collapse to (0, 0). Downstream crown-counting logic must special-case this so it does not count the origin six times.

Reasoning trace

  • Crown control is geometric, not “largest balance wins,” so the map itself becomes the win condition.
  • The crown must be maintainable but fragile. Six corners are hard to take, but easier to monitor than a whole perimeter.
  • The stream pays the faction side rather than individual members because alliances should compound strategically, not just socially.
  • Crown breakage is tied to placement because placement changes geometry; mining does not.
  • Void-adjacent placement exists to prevent frontier freeze and incumbent veto lock.