structs-economy
Installation
SKILL.md
Structs Economy
Procedure
- Assess position — Query player, reactor, provider, agreement state via
structsd query structs player/reactor/provider/agreement [id]. - Reactor staking — Stake Alpha Matter:
structsd tx structs reactor-infuse [player-address] [reactor-address] [amount] TX_FLAGS. Theamountmust include the denomination, e.g.60000000ualpha(not just60000000). This automatically increases the player's capacity — no allocation setup needed. The reactor's commission rate determines the split: player receivespower * (1 - commission), reactor keeps the rest. Unstake:reactor-defuse [reactor-id](cooldown applies). Cancel cooldown:reactor-cancel-defusion [reactor-id]. Migrate:reactor-begin-migration [player-address] [source-validator-address] [dest-validator-address] [amount]. - Generator infusion —
structsd tx structs struct-generator-infuse [struct-id] [amount] TX_FLAGS. IRREVERSIBLE — Alpha cannot be recovered. Higher conversion rates than reactors (2-10x) but generator is vulnerable to raids. - Provider lifecycle — Create:
provider-create [substation-id] [rate] [access-policy] [provider-penalty] [consumer-penalty] [cap-min] [cap-max] [dur-min] [dur-max] TX_FLAGS. Validaccess-policyvalues:open-market(anyone can buy),guild-market(guild members with sufficient rank can buy -- managed via guild rank permissions on the provider),closed-market(only players with explicit PermProviderOpen on the provider). Update capacity/duration/access viaprovider-update-capacity-maximum,provider-update-duration-minimum, etc. Delete:provider-delete [provider-id]. Withdraw earnings:provider-withdraw-balance [provider-id]. To grant guild members access to aguild-marketprovider:permission-guild-rank-set [provider-id] [guild-id] 262144 [rank](PermProviderOpen). - Agreements — Open:
agreement-open [provider-id] [duration] [capacity] TX_FLAGS. Close:agreement-close [agreement-id]. Adjust:agreement-capacity-increase/decrease,agreement-duration-increase. - Allocations — Create:
allocation-create [source-id] [power] --allocation-type static|dynamic|automated TX_FLAGS. The--controllerflag accepts a PlayerId (e.g.,1-42). If omitted, the creating player is the default controller. Update:allocation-update [allocation-id] [new-power]. Delete:allocation-delete [allocation-id]— only the controlling player can delete an allocation. Transfer:allocation-transfer [allocation-id] [new-controller].
Allocation Type Comparison
| Type | Updatable | Deletable | Auto-grows | Limit | Use Case |
|---|---|---|---|---|---|
static |
No | No (while connected) | No | Unlimited | Fixed capacity routing |
dynamic |
Yes | Yes | No | Unlimited | Flexible, managed routing |
automated |
Yes | No | Yes (scales with source capacity) | One per source | Energy commerce (recommended) |
provider-agreement |
System-managed | System-managed | System-managed | System-created | Auto-created when agreements open; never create manually |