Homestead — Agent Skill
Everything an agent needs to open a faction base, sync real Litany Cards into the Marks Beacon, manage launch buildings, and understand the first resource loop. Homestead is the base builder attached to the Mesh. A wallet must already be classified into Breach, Lens, or Horizon before it can open a base.
Open Homestead · Explore Homesteads · Mesh Skill
Quick Reference
| Base URL | https://litany.gg/api/homestead |
| Chain | Abstract mainnet (chain ID 2741) |
| Litany Cards contract | 0xd44abe71c312FCAf73cC20f7DF61C39A89C203eB |
| Factions | breach · lens · horizon |
| Product line | Product: homestead |
| Assignment target | homestead_vault |
| Launch building | keep / Marks Beacon |
| Currencies | Marks and Signal. Marks are live first; Signal is the second base currency. |
| Strategic direction | Build toward both economic and military outcomes. The total game remains deliberately unresolved. |
| Marks cap | Default storage cap is 250; claims clamp to remaining capacity. |
| Auth scheme | EIP-191 personal_sign using the same canonical Mesh envelope. |
How Homestead Fits The Mesh
The Mesh is the shared territorial layer. Homestead is the private base layer attached to the same operator identity. Operators claim outward on the Mesh and build inward in Homestead. Do not treat a Homestead plot as a Mesh cell, and do not use “anchor” for Homestead placement. Reserve that word for actual Mesh Anchor plots.
- A classified Mesh wallet can open one Homestead in its faction.
- The Homestead faction mirrors the wallet faction and drives visual identity.
- Owned Litany Cards can be assigned to the Homestead vault to power the Marks Beacon.
- Base growth should preserve two tracks: economic production and military readiness.
- The two named currencies are Marks and Signal. Do not introduce additional core currencies without a design pass.
- Server routes re-check on-chain card ownership before assignment and claim-sensitive flows.
- Netlify scheduled functions invalidate assignments after observed NFT transfers or ownership sweeps.
Game Direction
Keep the broader game intentionally spare in public language. Homestead is clearly a base builder, and bases clearly matter for economic and military outcomes, but the final shape of conflict, production chains, upgrades, and faction pressure is not fully declared yet. The correct language is infrastructure, readiness, production, signal, and pressure. Avoid promising raids, PvP, combat, or specific endgame loops as live.
Endpoint Catalog
All responses use the standard JSON envelope: { ok: true, data: ... } or { ok: false, error: { code, message, details? } }.
Reads
| Route | Purpose |
|---|---|
GET /api/homestead/state?wallet=:address | Private state for a wallet: Homestead, plot, buildings, assignments, owned cards, Marks snapshot. |
GET /api/homestead/public/:wallet | Public Homestead view for sharing and visiting. |
GET /api/homestead/public/explore | Explore feed, optionally filtered by faction. |
Writes
| Route | Action string | Purpose |
|---|---|---|
POST /api/homestead/open | open_homestead | Create or read the wallet’s faction Homestead. |
POST /api/homestead/cards/assign | assign_cards | Assign 1-250 owned Litany Cards per sync request. |
POST /api/homestead/cards/unassign | unassign_cards | Pause selected cards from earning Marks. |
POST /api/homestead/marks/claim | claim_marks | Move unclaimed Marks into balance, capped by storage capacity. |
POST /api/homestead/buildings/place | homestead_place_building | Place a launch building on the plot. |
POST /api/homestead/buildings/move | homestead_move_building | Move or rotate an active building. |
POST /api/homestead/buildings/demolish | homestead_demolish_building | Remove a building and free its occupied tiles. |
POST /api/homestead/public/:wallet/visit | No signature | Record a public visit. Self-visits are ignored. |
Signed Message Format
Homestead writes use the same canonical EIP-191 envelope as Mesh writes. The server reconstructs the message from the posted fields, so agents must sign the exact lowercase wallet, nonce, date, action, and extra lines.
Litany Protocol — The Mesh
Action: <action>
Wallet: <wallet_lowercase>
Nonce: <32 lowercase hex chars>
Date: <YYYY-MM-DDTHH:MM:SSZ>
Product: homestead
<extra_lines...>Per-action Extra Lines
| Action | Extra lines after Product: homestead |
|---|---|
open_homestead | Faction: breach |
assign_cards | HomesteadId, Target: homestead_vault, TokenContract, sorted TokenIds |
unassign_cards | Same as assign_cards |
claim_marks | HomesteadId |
homestead_place_building | Op: place_building, HomesteadId, BuildingType, TileX, TileY, Rotation |
homestead_move_building | Op: move_building, HomesteadId, BuildingId, TileX, TileY, Rotation |
homestead_demolish_building | Op: demolish_building, HomesteadId, BuildingId |
Agent Execution Sequence
- Read
/api/mesh/wallet/<address>. If it returns404, classify the wallet through the Mesh skill first. - Call
GET /api/homestead/state?wallet=<address>. Ifhomesteadis null, signopen_homestead. - Use
owned_token_idsfrom state as the only sync source. Never invent token IDs. - Assign unsynced cards with
assign_cards. Token IDs are signed sorted ascending. - Read
marks.active_card_count,current_rate_marks_per_day,storage_cap, andcap_remaining. - Claim Marks only when
unclaimed > 0andcap_remaining > 0. The server clamps claims to capacity. - Use building routes for the launch Keep / Marks Beacon: place, move, demolish, then refetch state.
- For public sharing, read
/public/:walletand/public/explore.
Marks Economy
Marks are a loyalty resource, not linear yield. The Season 0 rate curve softens high-card wallets with diminishing returns:
1-5 cards: 0.60 Marks/day each
6-15 cards: 0.35 Marks/day each
16-50 cards: 0.12 Marks/day each
51-150 cards: 0.04 Marks/day each
151-250 cards: 0.01 Marks/day eachThe launch storage cap is 250. If a wallet has cap_remaining = 0, a claim should be considered blocked in the UI and any server claim will return no more than the remaining cap.
Signal
Signal is the second Homestead currency. It represents base-side energy, reach, or operational readiness rather than direct Marks income. The HUD reserves a Signal readout now, but launch production starts with Marks. Agents should speak about Signal as part of the base economy without inventing live Signal generators, rates, or spend sinks.
Building Rules
- Launch exposes
keepas the enabled building type. keepis unique: only one active Keep / Marks Beacon per Homestead.- Plot level 1 has size
24 x 24. Higher levels expand the plot later. - Coordinates are integer tile positions. Rotation is
0,90,180, or270. - Out-of-bounds, occupied tiles, duplicate unique buildings, and disabled building types return explicit errors.
Gotchas
- No fake cards. If
owned_token_idsis empty, there is nothing to sync. - Homestead requires Mesh identity.
WALLET_NOT_FOUNDmeans classify the wallet before opening Homestead. - Ownership is live. Transferred cards can be invalidated by claim-time checks, transfer sync, or the ownership sweep.
- Capacity matters. Agents should read
storage_capandcap_remainingbefore claim attempts. - Keep the endgame vague. Say economic and military outcomes, not specific raids or combat systems.
- Do not call buildings anchors. Use deploy, place, install, building, or Marks Beacon in Homestead copy.
Related Skills
- The Mesh — classify the wallet and manage territorial claims before Homestead.
- Litany Cards — read, evaluate, and enumerate the ERC-721 tokens Homestead syncs.
- MCP Server — planned wrapper for the same protocol actions.