Skills structs-guild
Manages guild operations in Structs. Covers creation, membership, settings, and Central Bank token operations. Use when creating a guild, joining or leaving a guild, managing guild settings, minting or redeeming guild tokens, managing Central Bank collateral, or coordinating guild membership.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/abstrct/structs-guild" ~/.claude/skills/clawdbot-skills-structs-guild && rm -rf "$T"
skills/abstrct/structs-guild/SKILL.mdStructs Guild
Important: Entity IDs containing dashes (like
3-1, 4-5) are misinterpreted as flags by the CLI parser. All transaction commands in this skill use -- before positional arguments to prevent this.
Guild Rank System
Guilds use a numeric rank system to determine authority. Lower number = higher privilege.
| Rank | Meaning |
|---|---|
| 1 | Maximum privilege (guild creator) |
| 2–100 | Custom ranks assigned by leadership |
| 101 | Default rank assigned on join |
| 0 | Unset / no rank |
Rank-based authority: a player can only modify members whose rank is strictly worse (higher number) than their own. The guild creator (rank 1) can manage everyone.
Procedure
- Discover guilds —
orstructsd query structs guild-all
.structsd query structs guild [id] - Create guild — Requires PermReactorGuildCreate (524288) on the reactor and PermSubstationConnection (1024) on the entry substation.
.structsd tx structs guild-create TX_FLAGS -- [reactor-id] [endpoint] [entry-substation-id] - Membership — Join:
(usestructsd tx structs guild-membership-join -- [guild-id] [infusion-id,infusion-id2,...]
,--player-id
if needed). New members receive default guild rank (101). Proxy join:--substation-id
. Invite flow:structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids]
→ invitee runsstructsd tx structs guild-membership-invite -- [guild-id] [player-id]
orstructsd tx structs guild-membership-invite-approve -- [guild-id]
. Request flow:structsd tx structs guild-membership-invite-deny -- [guild-id]
→ owner runsstructsd tx structs guild-membership-request -- [guild-id]
orstructsd tx structs guild-membership-request-approve -- [guild-id] [player-id]
. Kick:structsd tx structs guild-membership-request-deny -- [guild-id] [player-id]
.structsd tx structs guild-membership-kick -- [guild-id] [player-id] - Rank management — Update a member's rank:
. Requires PermAdmin (2) on guild, or rank-based authority (actor rank strictly better than target's current rank). Update entry rank (rank assigned to new joiners):structsd tx structs player-update-guild-rank TX_FLAGS -- [player-id] [guild-rank]
. Requires PermUpdate (4) on guild; new rank must be >= caller's own rank.structsd tx structs guild-update-entry-rank TX_FLAGS -- [new-entry-rank] - Settings — See Commands Reference:
,guild-update-endpoint
,guild-update-entry-substation-id
(andguild-update-join-infusion-minimum
,-minimum-by-invite
),-minimum-by-request
. All useguild-update-owner-id
before positional args.-- - Central Bank — Mint:
(no guild-id — signer's guild is used implicitly; both amounts are raw integers). Redeem:structsd tx structs guild-bank-mint TX_FLAGS -- [alpha-amount] [token-amount]
. Confiscate and burn:structsd tx structs guild-bank-redeem -- [guild-id] [amount]
.structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount]
Provider Access Control via Guild Rank
To restrict a provider to members of a specific guild at a minimum rank, use guild rank permissions instead of direct player grants:
structsd tx structs permission-guild-rank-set --from [key] --gas auto -y -- [provider-id] [guild-id] 262144 [rank]
This grants PermProviderAgreementCreate (262144) on the provider to any member of the specified guild at or above the given rank. To revoke:
structsd tx structs permission-guild-rank-revoke --from [key] --gas auto -y -- [provider-id] [guild-id] 262144
Commands Reference
| Action | Command |
|---|---|
| Create | |
| Join | |
| Join proxy | |
| Invite | |
| Invite approve/deny | |
| Invite revoke | |
| Request | |
| Request approve/deny | |
| Request revoke | |
| Kick | |
| Update guild rank | |
| Update entry rank | |
| Update endpoint | |
| Update entry substation | |
| Update infusion minimums | |
| Update owner | |
| Bank mint | (signer's guild, raw integers) |
| Bank redeem | |
| Bank confiscate | |
| Set guild rank permission | |
| Revoke guild rank permission | |
TX_FLAGS:
--from [key-name] --gas auto --gas-adjustment 1.5 -y
Verification
- Guild:
— members, settings, owner.structsd query structs guild [id] - Membership applications:
or by ID.structsd query structs guild-membership-application-all - Bank collateral:
— verify reserves.structsd query structs guild-bank-collateral-address [guild-id] - Guild rank permissions:
— verify rank-based access.structsd query structs guild-rank-permission-by-object-and-guild [object-id] [guild-id]
Error Handling
- Insufficient infusion: Guild may require minimum infusion to join. Query guild for
; meet requirement or get invite (bypass).joinInfusionMinimum - Already member: Cannot join twice. Check
status.guild-membership-application - Mint/redeem failed: Verify guild has sufficient Alpha Matter collateral for mint; sufficient tokens for redeem.
- Permission denied: Only guild owner (or delegated address) can update settings, approve requests, mint/redeem. Rank-based operations require actor rank strictly better than target.
- Rank too low:
requires new rank >= caller's own rank. Cannot set entry rank higher than your own authority.guild-update-entry-rank
See Also
- knowledge/economy/guild-banking — Central Bank, collateral, token lifecycle
- knowledge/economy/energy-market — Provider guild access
- knowledge/mechanics/permissions — Full permission system reference (24-bit values, guild rank permissions)
- knowledge/lore/factions — Guild politics