Earning and trading in Structs — selling energy via providers, buying capacity via agreements, allocations, reactor staking economics, the guild Central Bank (mint/redeem/convert), and token transfers. Use when you want to monetize surplus energy, shop for an energy agreement, set provider pricing, stake Alpha into a reactor for capacity, mint/redeem/convert guild tokens, or send tokens. For just keeping your own structs powered, see structs-energy.
编程
structs-energy
试用在 Structs 中扩容能源:反应堆与发电机灌注,加上协议买卖电力。
它能做什么
管理 Structs 中的能源与容量。把 Alpha Matter 灌注进反应堆(可撤回、立即生效、按 commission 抽成),或灌注进发电机(不可逆、转换率更高、可被掠夺)来扩容。没有 Alpha Matter 时,可以从其他玩家的 provider 签订 agreement 购电,并把生成的 allocation 接到变电站。多余容量可以走 reactor → allocation → substation → provider 流水线卖出。涵盖 agreement 生命周期(容量、时长、关闭)、provider 搭建与收益提取,以及 automated allocation 的规则。
什么时候用它
- 把 ualpha 灌注进反应堆以增加容量
- 用 Field / Continental / World Engine 发电机追求更高转换率
- 通过 provider 签协议购电,并把 allocation 接到变电站
- 通过 reactor-allocation-substation-provider 流水线出售余电
技能文档
Structs Energy Management
Safety
See SAFETY.md for the trust contract. In this skill:
reactor-infuse(Tier 1) — "Your alpha locks into the reactor; commission rate is captured permanently. Defusion has a cooldown." Surface the validator address, commission, and ualpha amount.struct-generator-infuse(Tier 2 — irreversible) — "Alpha Matter is annihilated in the conversion. And the generator is raidable — if it falls, the infused matter falls with it." Confirm the generator's defense posture (shield, PDC, defenders) before infusing.agreement-open(Tier 1) — "You pay upfront for the full duration. Closing early may trigger a cancellation penalty." Surface rate, duration in blocks, and total cost.reactor-defuse(Tier 2 — cooldown lock-in) — "Your alpha is suspended between reactor and wallet during the cooldown."- Denomination footgun —
reactor-infuseandstruct-generator-infuserequire theualphadenomination suffix on the amount (e.g.60000000ualpha, not60000000). Missing denom = failed tx.
Decision Tree
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
Reactor Infusion (most common path)
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.
How It Works
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:
- Player receives:
power * (1 - commission) - Reactor receives:
power * commission
The player's capacity increases automatically — no allocation or substation setup needed.
Example
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)- Reactor keeps 4%: 120,000 mW (120 W)
- Player receives 96%: 2,880,000 mW (2,880 W) added to capacity
Procedure
- Check current capacity:
structsd query structs player [id] - Choose a reactor (usually your guild's):
structsd query structs reactor [id]— note thecommissionfield - Infuse (the CLI will prompt for confirmation — review reactor commission, ualpha amount, and validator address before accepting):
structsd tx structs reactor-infuse [your-address] [validator-address] [amount]ualpha --from [key-name] --gas auto --gas-adjustment 1.5
Important: The amount must include the denomination, e.g. 60000000ualpha (not just 60000000). Omitting the denom will cause the transaction to fail.
- Verify: re-query player, confirm capacity increased
Choosing a Reactor
- Your guild's reactor is the default choice — it strengthens the guild and you benefit from guild infrastructure
- Lower commission = more capacity for you
- Check commission before infusing:
structsd query structs reactor [id] - You can infuse into any reactor, not just your guild's
- The
reactor-infusecommand takes the validator address (structsvaloper1...), not the reactor ID. Find it in the reactor query output'svalidatorfield
Undoing Infusion
structsd 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)
Generator Infusion
Generators convert Alpha Matter to energy at higher ratios than reactors, but the infusion is irreversible and the generator is vulnerable to raids.
Conversion Rates
| 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 |
Procedure
-
Identify your generator struct:
structsd query structs struct [id]— must be type 20, 21, or 22 -
Approval Block — generator infusion is Tier 2 (irreversible). Before signing, confirm:
struct-idis the generator you intendamountof ualpha (this Alpha is annihilated on success — no defusion exists)- Generator's current defense posture: shield > 0, PDC online, no inbound fleet
--fromkey is the player who owns the generator
-
Infuse (CLI prompts for confirmation — review one more time on the prompt):
structsd tx structs struct-generator-infuse [struct-id] [amount]ualpha --from [key-name] --gas auto --gas-adjustment 1.5
Important: Amount must include denomination, e.g. 5000000ualpha.
- Verify: query player for capacity increase
When to Use Generators
- You need maximum energy efficiency per gram of Alpha Matter
- You have defense in place (shields, PDC, defenders) to protect the generator
- You accept the risk that if the generator is destroyed, the infused Alpha is lost forever
Do not infuse generators without adequate defense.
Buy Energy (Agreement Path)
If you have no Alpha Matter to infuse, you can buy energy from another player who is running a provider.
Procedure
- Find a provider: Query available providers:
structsd query structs provider-all
Or check your guild's providers. Look for one with acceptable rateAmount, capacityMaximum, and durationMaximum.
- Open an agreement (CLI prompts — review rate × duration × capacity for the total upfront cost before accepting):
structsd tx structs agreement-open [provider-id] [duration-in-blocks] [capacity] --from [key-name] --gas auto --gas-adjustment 1.5
The agreement automatically creates an allocation.
- Connect the allocation to a substation:
structsd tx structs substation-allocation-connect [substation-id] [allocation-id] --from [key-name] --gas auto --gas-adjustment 1.5
Connect to your guild's substation to benefit the guild, or create your own substation for independent energy management.
- Verify: Query player to confirm capacity increased.
Agreement Management
- Increase capacity:
agreement-capacity-increase [agreement-id] [additional-capacity] - Decrease capacity:
agreement-capacity-decrease [agreement-id] [reduce-by] - Extend duration:
agreement-duration-increase [agreement-id] [additional-blocks] - Close:
agreement-close [agreement-id]— may incur cancellation penalty
Sell Energy (Energy Commerce Pipeline)
If 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.
Full Pipeline (Step by Step)
-
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
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.
- Create automated allocation -- Routes your capacity to a substation. Use
automatedtype so it auto-grows when you infuse more alpha:
structsd tx structs allocation-create --allocation-type automated --from [key-name] --gas auto -- [your-player-id] [power-amount]
- Create substation -- The distribution node for your energy:
structsd tx structs substation-create --from [key-name] --gas auto -- [your-player-id] [allocation-id]
- Create provider -- Your marketplace storefront:
structsd tx structs provider-create --from [key-name] --gas auto -- [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 |
- Monitor agreements -- Buyers open agreements against your provider:
structsd query structs provider [provider-id]
- Withdraw earnings periodically:
structsd tx structs provider-withdraw-balance --from [key-name] --gas auto -- [provider-id]
How Agreements Work (Payment Flow)
When a buyer opens an agreement:
- Buyer pays
capacity * rate * durationupfront in the rate denomination - Payment goes into the provider's collateral address (escrow)
- System auto-creates a
provider-agreementallocation (energy flows immediately) - Revenue drips from collateral to the provider's earnings address as blocks pass
- Provider withdraws accumulated earnings at any time
- On expiry (endBlock reached), the allocation is released
Agreement lifecycle: OPEN -> ACTIVE -> EXPIRED (or CLOSED early with cancellation penalties).
The Energy Flywheel
The most powerful economic strategy in Structs is compounding energy:
- Mine ore from planets
- Refine ore into Alpha immediately
- Infuse Alpha into the guild reactor
- Automated allocation grows substation capacity
- Sell energy via provider, earning guild tokens
- Reinvest guild tokens (via
guild-bank-redeemfor alpha, or trade)
Each cycle compounds: more alpha = more capacity = more energy to sell = more tokens = more economic power.
Important Notes
- Defusion cooldown: Infused alpha is not immediately liquid.
reactor-defusestarts a cooldown period. Don't infuse alpha you may need for short-term operations (fleet rebuilds, emergency purchases). - Commission is locked: The reactor's commission rate at infusion time is permanent for that specific infusion. Check commission before infusing.
- Automated allocations: Limited to one per source. They auto-grow with your capacity -- no manual adjustment needed after creation. If you attempt to create a second automated allocation from the same source, the transaction will error. Delete the existing one first, or use
dynamictype for additional allocations. - Provider-agreement allocations: Auto-created by the system when agreements open. Do not create or modify these manually.
Provider Management
- Grant guild members access (for
guild-marketproviders):permission-guild-rank-set [provider-id] [guild-id] 262144 [rank](PermProviderOpen -- guild members at or above the specified rank can open agreements) - Revoke guild access:
permission-guild-rank-revoke [provider-id] [guild-id] 262144 - Update terms:
provider-update-capacity-maximum,provider-update-duration-minimum, etc. - Delete provider:
provider-delete [provider-id](close agreements first)
Quick Reference
| 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] |
Commands Reference
| 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 |
TX_FLAGS (interactive — the CLI prompts you to confirm): --from [key-name] --gas auto --gas-adjustment 1.5
TX_FLAGS_APPROVED (only after commander approval; suppresses the prompt): TX_FLAGS plus -y. See SAFETY.md "The -y Rule." reactor-infuse and struct-generator-infuse are Tier 1/Tier 2 — always default to interactive so you see the validator, commission, amount, and (for generators) the irreversibility warning.
Requires: structsd on PATH and a configured signing key.
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 -- [entity-id] [other-args]
Error Handling
- Going offline — Load exceeds capacity. Immediately deactivate non-essential structs (
struct-deactivate), then increase capacity via reactor infusion or agreement. - "insufficient balance" — Not enough ualpha. Mine and refine ore first, or buy energy via agreement instead.
- "generator infuse failed" — Verify the struct is a generator type (20, 21, or 22) and is online.
- Commission too high — Check other reactors. You can infuse into any reactor, not just your guild's.
- No providers available — Ask guild members to create providers, or infuse your own reactor.
See Also
- structs-economy skill — Full economic operations (all allocation types, token transfers)
- structs-power skill — Substations, player connections, power monitoring
- knowledge/mechanics/power — Capacity formulas, load calculations, online status
- knowledge/economy/energy-market — Provider/agreement mechanics, pricing
- knowledge/mechanics/resources — Alpha Matter conversion rates
常见问题
- 反应堆灌注和发电机灌注有什么区别?
- 反应堆接受 ualpha,按 `power * (1 - commission)` 立即增加你的容量,可用 `reactor-defuse` 进入冷却后撤回。发电机转换率更高(Field 1g=2kW、Continental 1g=5kW、World Engine 1g=10kW),但灌注不可逆且发电机可被掠夺——一旦陷落,灌注的 Alpha 永久损失。
- 为什么我的灌注交易总是失败?
- 金额必须带 `ualpha` 面额后缀(如 `60000000ualpha`,不能只写 `60000000`
相关技能
管理 Structs 建筑全周期:从发起建造、计算 PoW(自动激活),到移动、布防、隐身切换与发电机注入。
Intelligence gathering in Structs — scouting players, planets, guilds, and the galaxy before you act. Use when assessing a raid target, checking a planet's defenses and Command Ship status, profiling an opponent, surveying the galaxy, or refreshing competitive intel. Persists findings to memory/intel/ so they survive context resets.
带新智能体完成 Structs 从密钥创建到首批建筑上线的入驻流程。
Manages planets and fleet in Structs — evaluating and exploring planets, claiming/relocating, fleet movement and composition, evacuation, and the onStation-vs-away state. Use when discovering or claiming a planet, your planet is depleting, relocating, moving the fleet, checking fleet status, or deciding fleet composition for offense/defense. Covers the raid-clock implications of fleet position.
Runs the Alpha Matter production pipeline in Structs — mine ore, refine it to Alpha Matter, then put the Alpha to work. Use when mining or refining, starting or scheduling a mine→refine cycle, protecting stored ore, scaling output, deciding what to do with refined Alpha, or handling a planet running out of ore. Mining ~17h and refining ~34h are background expeditions; ore is stealable until refined.