Version: 1.1.0
Last Updated: January 16, 2026
Purpose: Quick reference guide for AI agents performing game actions
This guide provides a quick reference for all game actions available to AI agents. For complete action definitions, see schemas/actions.md and reference/action-index.md.
All actions are submitted as transactions to: POST /cosmos/tx/v1beta1/txs
See: protocols/action-protocol.md for complete transaction flow
Build Struct:
struct-build-initiate- Start building (first step)struct-build-complete- Complete building (requires proof-of-work)
Requirements:
- Player online
- Sufficient resources
- Valid location
- Command Ship online (if building on planet)
- Fleet on station (if building on planet)
- Sufficient power capacity
See: reference/action-index.md#struct-build-initiate
Activate/Deactivate:
struct-activate- Activate struct (bring online)struct-deactivate- Deactivate struct (take offline)struct-deactivate-batch- Deactivate up to 65 structs in one transactionstruct-stealth-activate- Activate with stealthstruct-stealth-deactivate- Deactivate stealth
Trash:
struct-trash- Permanently destroy a built struct you own (costsbuildCharge, irreversible)
Move/Defense:
struct-move- Move struct to new locationstruct-defense-set- Set defense modestruct-defense-clear- Clear defense mode
Requirements:
struct-activaterequires the player online, sufficient charge (activateCharge= 2), and sufficient powerstruct-deactivate/struct-deactivate-batchdo not require the player online (recovery actions) and cost no charge; the struct(s) must be built and currently onlinestruct-trashrequires charge equal to the type'sbuildCharge(8) and resets the charge bar; the struct must be built and not already destroyedstruct-moverequires a valid location
Attack:
struct-attack- Attack another struct
Raid:
planet-raid-complete- Complete planet raid (requires proof-of-work)
Requirements (attack):
- Attacking struct online, and its owner online (the attacker's Command Ship does not need to be online)
- Sufficient charge
- Valid target — the target must be a built struct (an unbuilt struct is rejected with
unbuilt, a destroyed one withdestroyed); the target's online status is irrelevant
Requirements (raid):
- Raider's player online
- Fleet away
- Defender's shields vulnerable — defender's fleet off-station, or their Command Ship offline/destroyed/non-existent (otherwise
shields_active) - Raid clock started (
blockStartRaid!= 0) - Proof-of-work
Mining:
struct-ore-mine-complete- Complete ore mining (requires proof-of-work)struct-ore-refine-complete- Complete ore refining (requires proof-of-work)
Power:
reactor-infuse- Infuse reactor with resources (produces energy). Also handles validation delegationreactor-defuse- Defuse reactor (remove resources). Also handles validation undelegationreactor-begin-migration- Begin redelegation process for reactor validation stakereactor-cancel-defusion- Cancel undelegation process for reactor validation stakesubstation-create- Create substationsubstation-player-connect- Connect player to substationsubstation-allocation-connect- Connect an allocation to a substation as its energy source
Reactor Staking:
- Reactor staking is now managed at player level
- Validation delegation is abstracted via Reactor Infuse/Defuse actions
- Use
reactor-infusefor delegation,reactor-defusefor undelegation - Use
reactor-begin-migrationto begin redelegation - Use
reactor-cancel-defusionto cancel undelegation
Requirements:
- Player online
- Sufficient charge (for mining)
- Proof-of-work (for mining/refining)
- Valid struct type
Providers:
provider-create- Create energy provider
Agreements:
agreement-open- Open energy agreement
Mining/Refining:
struct-ore-mine-complete- Complete ore mining (requires proof-of-work)struct-ore-refine-complete- Complete ore refining (requires proof-of-work)
Generators:
struct-generator-infuse- Infuse generator with Alpha Matter (produces energy)
Requirements:
- Player online
- Sufficient resources
- Valid parameters
Planet Exploration:
planet-explore- Explore a planet; optional[name]sets display name at creation
Requirements:
- Player online
- Valid planet
- Sufficient resources
Fleet Movement:
fleet-move- Move fleet (on station ↔ away)
Requirements:
- Player online
- Command Ship online
- Valid destination
Guild Management:
guild-create- Create guild from a reactor (requiresPermReactorGuildCreateon reactor)guild-update-entry-rank- Update default rank for new members (requiresPermUpdateon guild)guild-membership-join- Join guildguild-membership-join-proxy- Sign a new player into the guild on their behalf; accepts optional--player-nameand--player-pfpflags to seed the new player's UGC fields immediatelyguild-membership-kick- Remove member from guildplayer-update-guild-rank- Set a player's guild rank (requiresPermAdminon guild or rank-based authority)
Guild Bank:
guild-bank-mint- Mint guild tokensguild-bank-redeem- Redeem guild tokens
Token Transfer:
player-send- Send tokens via structs module (requiresPermTokenTransfer)
UGC Identity:
guild-update-name- Rename a guild (requiresPermUpdateon guild)guild-update-pfp- Set guild profile picture (requiresPermUpdateon guild)guild-update-primary-reactor- Reassign primary reactor (recovery for retired/jailed validator; requiresPermAdminon guild)player-update-name- Rename a player (self-service viaPermUpdateon the player, OR guild moderation viaPermGuildUGCUpdateon the player's guild)player-update-pfp- Set a player's profile picture (same permission rules as player-update-name)player-update-pfp-cr-attributes- Set/clear render hints (JSON object, ≤512 bytes) for a locally-rendered pfp (owner-only, not guild-moderatable)planet-update-name- Rename a planet (self-service viaPermUpdate, OR guild moderation viaPermGuildUGCUpdateon the planet owner's guild)substation-update-name- Rename a substation (same permission rules as planet-update-name applied to the substation owner's guild)substation-update-pfp- Set a substation's profile picture (same permission rules as substation-update-name)
See knowledge/mechanics/ugc-moderation.md for the validation rules every name/pfp value must satisfy.
Requirements:
- Player online
- Sufficient resources (for create/mint)
- Valid guild (for membership/bank)
- Appropriate permissions (see
knowledge/mechanics/permissions.md)
Object Permissions:
permission-grant-on-object- Add permission flags on an object (bitwise OR)permission-revoke-on-object- Remove permission flags from an object (bitwise AND NOT)permission-set-on-object- Replace entire permission value on an object
Address Permissions:
permission-grant-on-address- Add permission flags on an addresspermission-revoke-on-address- Remove permission flags from an addresspermission-set-on-address- Replace entire permission value on an address
Guild Rank Permissions:
permission-guild-rank-set- Set guild rank permission on an object (decomposes bitmask)permission-guild-rank-revoke- Revoke guild rank permission from an object
Requirements:
- Caller must already have the permission flags being granted/revoked/set
- See
knowledge/mechanics/permissions.mdfor the 25-bit flag reference (bit 24 =PermGuildUGCUpdate)
allocation-create- Create energy allocation (controller is PlayerId)allocation-update- Update allocation powerallocation-delete- Delete allocationallocation-transfer- Transfer allocation controller
provider-create- Create energy providerprovider-delete- Delete providerprovider-withdraw-balance- Withdraw earningsprovider-update-capacity-minimum/maximum- Update capacity limitsprovider-update-duration-minimum/maximum- Update duration limitsprovider-update-access-policy- Update access policyagreement-open- Open energy agreementagreement-close- Close agreementagreement-capacity-increase/decrease- Adjust capacityagreement-duration-increase- Extend agreement
substation-create- Create substationsubstation-delete- Delete substationsubstation-player-connect- Connect player to substationsubstation-player-disconnect- Disconnect player from substationsubstation-player-migrate- Migrate player between substationssubstation-allocation-connect- Connect allocation to substationsubstation-allocation-disconnect- Disconnect allocation from substation
Player Online:
- Player must be online (capacity covers load)
- Check:
GET /structs/player/{id}→player online via capacity/load
Sufficient Resources:
- Player must have required resources
- Check: Query player resources before action
Sufficient Charge (per-player, not per-struct):
- The acting player must have accumulated the required charge on their single shared bar
- Check:
GET /structs/player/{id}→player.charge >= required(charge =CurrentBlockHeight - player.lastActionBlock) - Note:
ActivateChargeis 2 for all struct types (genesis default); see building.md for the full cost table - Exception: Build cancel actions do not require charge or player online
Sufficient Power:
- Player must have power capacity > struct passive draw
- Check: Query player power capacity
Command Ship Online:
- Command Ship must be built AND online
- Check: Query fleet for Command Ship struct
Fleet Status:
- Fleet must be on station (for building)
- Fleet must be away (for raids)
- Check: Query fleet status
Valid Location:
- Location must be valid and accessible
- Check: Query location before action
Valid Target:
- Target must be valid and attackable
- Check: Query target before attack
Use Case: Simple action, no dependencies
Flow:
- Check requirements
- Build transaction
- Sign transaction
- Submit transaction
- Wait for confirmation
- Verify action occurred
Example: struct-activate, struct-deactivate
Use Case: Action requires two steps
Flow:
- Step 1: Initiate action
- Wait for confirmation
- Query state (wait for intermediate state)
- Step 2: Complete action
- Wait for confirmation
- Verify action occurred
Examples:
struct-build-initiate→struct-build-complete- Mining: Initiate → Complete (with proof-of-work)
Use Case: Action requires proof-of-work computation
Flow:
- Initiate action
- Wait for confirmation
- Query struct state
- Compute proof-of-work
- Complete action with proof
- Wait for confirmation
- Verify action occurred
Examples:
struct-build-completeplanet-raid-completestruct-ore-mine-completestruct-ore-refine-complete
See: protocols/action-protocol.md#proof-of-work for proof-of-work details
Use Case: Action depends on game state
Flow:
- Query game state
- Check preconditions
- If conditions met: Execute action
- If conditions not met: Wait or abort
- Verify action occurred
Example: Attack only if target is valid and attackable
{
"flow": [
{
"step": 1,
"action": "Get account info",
"endpoint": "GET /cosmos/auth/v1beta1/accounts/{address}"
},
{
"step": 2,
"action": "Build transaction",
"message": "Action message (e.g., MsgStructBuild)"
},
{
"step": 3,
"action": "Sign transaction",
"method": "Sign with private key"
},
{
"step": 4,
"action": "Submit transaction",
"endpoint": "POST /cosmos/tx/v1beta1/txs"
},
{
"step": 5,
"action": "Wait for confirmation",
"check": "Transaction status"
},
{
"step": 6,
"action": "Verify action occurred",
"method": "Query game state"
}
]
}See: protocols/action-protocol.md for complete details
broadcast does NOT mean action succeeded!
Validation happens on-chain after broadcast:
- Transaction broadcasts successfully
- on-chain validation checks requirements
- Action succeeds OR fails based on validation
- Always verify game state to confirm action occurred
Example:
{
"scenario": "Build struct without sufficient resources",
"result": {
"transaction": "broadcast",
"action": "failed",
"reason": "Insufficient resources (validated on-chain)"
},
"verification": "Query struct - struct not created"
}Player Offline (code: 6):
- Player is offline (load exceeds capacity)
- Action: Wait for player to come online
Insufficient Funds (code: 2):
- Player doesn't have required resources
- Action: Check resources, wait, or abort
Insufficient Charge (code: 7):
- Struct doesn't have required charge
- Action: Wait for charge to accumulate
Invalid Location (code: 8):
- Location is invalid or inaccessible
- Action: Verify location, correct, and retry
Invalid Target (code: 9):
- Target is invalid or not attackable
- Action: Verify target, correct, and retry
See: api/error-codes.md for complete error catalog
Construction:
struct-build-initiatestruct-build-complete
Combat:
struct-attackplanet-raid-complete
Resource:
struct-ore-mine-completestruct-ore-refine-completereactor-infuse(validation delegation)reactor-defuse(validation undelegation)substation-create
Economic:
provider-createagreement-openstruct-ore-mine-completestruct-ore-refine-completestruct-generator-infuse
Exploration:
planet-explore
Fleet:
fleet-move
Guild:
guild-createguild-update-entry-rankguild-membership-joinguild-bank-mintplayer-update-guild-rankplayer-send
Permissions:
permission-grant-on-objectpermission-revoke-on-objectpermission-set-on-objectpermission-guild-rank-setpermission-guild-rank-revoke
Requires Proof-of-Work:
struct-build-completeplanet-raid-completestruct-ore-mine-completestruct-ore-refine-complete
Requires Charge:
struct-activatestruct-attackstruct-ore-mine-completestruct-ore-refine-complete
Requires Command Ship:
fleet-moveplanet-raid-complete- Building on planet
Two-Step Process:
struct-build-initiate→struct-build-complete- Mining: Initiate → Complete
Action Definitions:
schemas/actions.md- Complete action schemasreference/action-index.md- Action index with metadata
Protocols:
protocols/action-protocol.md- Complete action protocolprotocols/gameplay-protocol.md- Gameplay interaction patternsprotocols/error-handling.md- Error handling
Patterns:
patterns/workflow-patterns.md- Multi-step workflow patternspatterns/retry-strategies.md- Retry patterns for failed actions
Examples:
examples/workflows/- Workflow examplesexamples/errors/- Error examples
- Always check requirements before submitting action
- Verify action occurred by querying game state
- Handle errors gracefully with retry logic
- Use two-step pattern for build/mining actions
- Compute proof-of-work for actions that require it
- Wait for confirmations before proceeding
- Query game state to verify action success
- Handle validation failures appropriately
Last Updated: January 1, 2026