Need more capacity?
├── Have Alpha Matter?
│ ├── Infuse into a reactor (safest, immediate, 1g ≈ 1kW minus commission)
│ │ → See "Reactor Infusion" below
│ └── Infuse into a generator (higher ratio, IRREVERSIBLE, vulnerable to raids)
│ → See "Generator Infusion" below
└── No Alpha Matter?
└── Buy energy from a provider via agreement
→ See "Buy Energy" below
Have surplus energy?
└── Sell it by creating a provider
→ See "Sell Energy" below
Infusing Alpha Matter (ualpha) into a reactor immediately increases the player’s capacity. This is the safest and most common way to get more energy.
When you infuse ualpha into a reactor, the system generates power equal to the amount infused. This power is split between you and the reactor based on the reactor’s commission rate:
power * (1 - commission)power * commissionThe player’s capacity increases automatically — no allocation or substation setup needed.
Infusing 3,000,000 ualpha into a reactor with 4% commission:
{
"destinationType": "reactor",
"destinationId": "3-1",
"fuel": "3000000",
"power": "3000000",
"commission": "0.040000000000000000",
"playerId": "1-33"
}
fuel: 3,000,000 ualpha infusedpower: 3,000,000 mW generated (1 ualpha = 1 mW = 0.001 W)structsd query structs player [id]structsd query structs reactor [id] — note the commission fieldstructsd tx structs reactor-infuse [your-address] [validator-address] [amount]ualpha --from [key-name] --gas auto --gas-adjustment 1.5 -y
Important: The amount must include the denomination, e.g. 60000000ualpha (not just 60000000). Omitting the denom will cause the transaction to fail.
structsd query structs reactor [id]reactor-infuse command takes the validator address (structsvaloper1...), not the reactor ID. Find it in the reactor query output’s validator fieldstructsd tx structs reactor-defuse [reactor-id] — starts a cooldown period before ualpha is returnedstructsd tx structs reactor-cancel-defusion [reactor-id] — cancel defusion and re-stakestructsd tx structs reactor-begin-migration [player-address] [source-validator-address] [dest-validator-address] [amount] — move stake to a different reactor (takes addresses, not IDs)Generators convert Alpha Matter to energy at higher ratios than reactors, but the infusion is irreversible and the generator is vulnerable to raids.
| Generator | Type ID | Rate | Risk |
|---|---|---|---|
| Field Generator | 20 | 1g = 2 kW | High — vulnerable to raids, irreversible |
| Continental Power Plant | 21 | 1g = 5 kW | High — vulnerable to raids, irreversible |
| World Engine | 22 | 1g = 10 kW | High — vulnerable to raids, irreversible |
structsd query structs struct [id] — must be type 20, 21, or 22structsd tx structs struct-generator-infuse [struct-id] [amount]ualpha --from [key-name] --gas auto --gas-adjustment 1.5 -y
Important: Amount must include denomination, e.g. 5000000ualpha.
Do not infuse generators without adequate defense.
If you have no Alpha Matter to infuse, you can buy energy from another player who is running a provider.
structsd query structs provider-all
Or check your guild’s providers. Look for one with acceptable rateAmount, capacityMaximum, and durationMaximum.
structsd tx structs agreement-open [provider-id] [duration-in-blocks] [capacity] --from [key-name] --gas auto --gas-adjustment 1.5 -y
The agreement automatically creates an allocation.
structsd tx structs substation-allocation-connect [substation-id] [allocation-id] --from [key-name] --gas auto --gas-adjustment 1.5 -y
Connect to your guild’s substation to benefit the guild, or create your own substation for independent energy management.
agreement-capacity-increase [agreement-id] [additional-capacity]agreement-capacity-decrease [agreement-id] [reduce-by]agreement-duration-increase [agreement-id] [additional-blocks]agreement-close [agreement-id] — may incur cancellation penaltyIf you have surplus capacity, you can sell energy to other players through the reactor-allocation-substation-provider pipeline. This is the core of Structs economic gameplay.
Accumulate Alpha – Mine ore, refine immediately. Consolidate ualpha to the account that will manage energy commerce.
Infuse into reactor – Increases your player capacity. Use your guild’s reactor for simplicity:
structsd tx structs reactor-infuse [your-address] [validator-address] [amount]ualpha --from [key-name] --gas auto -y
The validator-address is structsvaloper1... (find it in structsd query structs reactor [id] under the validator field). Commission is locked at infusion time and permanent for that infusion.
automated type so it auto-grows when you infuse more alpha:structsd tx structs allocation-create --allocation-type automated --from [key-name] --gas auto -y -- [your-player-id] [power-amount]
structsd tx structs substation-create --from [key-name] --gas auto -y -- [your-player-id] [allocation-id]
structsd tx structs provider-create --from [key-name] --gas auto -y -- [substation-id] [rate] [access-policy] [provider-penalty] [consumer-penalty] [cap-min] [cap-max] [dur-min] [dur-max]
| Parameter | Purpose | Recommendation |
|---|---|---|
rate |
Price per unit capacity per block | 1uguild.0-1 (guild tokens create demand for your guild’s currency) |
access-policy |
Who can buy | open-market for maximum revenue |
provider-penalty |
Penalty you pay if you cancel | 0 initially |
consumer-penalty |
Penalty buyer pays if they cancel | 0 to lower friction |
cap-min / cap-max |
Capacity range per agreement | 1000 to 1000000000 |
dur-min / dur-max |
Duration range in blocks | 100 to 1000000 |
structsd query structs provider [provider-id]
structsd tx structs provider-withdraw-balance --from [key-name] --gas auto -y -- [provider-id]
When a buyer opens an agreement:
capacity * rate * duration upfront in the rate denominationprovider-agreement allocation (energy flows immediately)Agreement lifecycle: OPEN -> ACTIVE -> EXPIRED (or CLOSED early with cancellation penalties).
The most powerful economic strategy in Structs is compounding energy:
guild-bank-redeem for alpha, or trade)Each cycle compounds: more alpha = more capacity = more energy to sell = more tokens = more economic power.
reactor-defuse starts a cooldown period. Don’t infuse alpha you may need for short-term operations (fleet rebuilds, emergency purchases).dynamic type for additional allocations.provider-guild-grant [provider-id] [guild-id]provider-guild-revoke [provider-id] [guild-id]provider-update-capacity-maximum, provider-update-duration-minimum, etc.provider-delete [provider-id] (close agreements first)| Situation | Action |
|---|---|
| Low capacity, have Alpha | Infuse into guild reactor |
| Need maximum kW per gram | Infuse into generator (irreversible) |
| No Alpha, need capacity | Open agreement with a provider |
| Surplus capacity | Create provider to sell energy |
| Going offline (load > capacity) | Deactivate structs immediately, then increase capacity |
| Check commission rate | structsd query structs reactor [id] |
| Check your capacity | structsd query structs player [id] |
| Action | Command |
|---|---|
| Reactor infuse | structsd tx structs reactor-infuse [your-addr] [validator-addr] [amount-ualpha] (validator = structsvaloper1..., NOT reactor ID) |
| Reactor defuse | structsd tx structs reactor-defuse [reactor-id] |
| Reactor migrate | structsd tx structs reactor-begin-migration [player-addr] [src-validator-addr] [dest-validator-addr] [amount] |
| Generator infuse | structsd tx structs struct-generator-infuse [struct-id] [amount-ualpha] |
| Open agreement | structsd tx structs agreement-open [provider-id] [duration] [capacity] |
| Close agreement | structsd tx structs agreement-close [agreement-id] |
| Create provider | structsd tx structs provider-create [substation-id] [rate] [access] [prov-pen] [cons-pen] [cap-min] [cap-max] [dur-min] [dur-max] |
| Delete provider | structsd tx structs provider-delete [provider-id] |
| Withdraw earnings | structsd tx structs provider-withdraw-balance [provider-id] |
| Connect allocation | structsd tx structs substation-allocation-connect [substation-id] [allocation-id] |
| Query player power | structsd query structs player [id] |
| Query reactor | structsd query structs reactor [id] |
| Query providers | structsd query structs provider-all |
Common tx flags: --from [key-name] --gas auto --gas-adjustment 1.5 -y
Important: Entity IDs containing dashes (like 3-1, 4-5) are misinterpreted as flags by the CLI parser. Always place -- between flags and positional args: structsd tx structs command --from key --gas auto -y -- [entity-id] [other-args]
struct-deactivate), then increase capacity via reactor infusion or agreement.