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.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/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"
manifest: skills/abstrct/structs-guild/SKILL.md
source content

Structs 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.

RankMeaning
1Maximum privilege (guild creator)
2–100Custom ranks assigned by leadership
101Default rank assigned on join
0Unset / 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

  1. Discover guilds
    structsd query structs guild-all
    or
    structsd query structs guild [id]
    .
  2. 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]
    .
  3. Membership — Join:
    structsd tx structs guild-membership-join -- [guild-id] [infusion-id,infusion-id2,...]
    (use
    --player-id
    ,
    --substation-id
    if needed). New members receive default guild rank (101). Proxy join:
    structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids]
    . Invite flow:
    structsd tx structs guild-membership-invite -- [guild-id] [player-id]
    → invitee runs
    structsd tx structs guild-membership-invite-approve -- [guild-id]
    or
    structsd tx structs guild-membership-invite-deny -- [guild-id]
    . Request flow:
    structsd tx structs guild-membership-request -- [guild-id]
    → owner runs
    structsd tx structs guild-membership-request-approve -- [guild-id] [player-id]
    or
    structsd tx structs guild-membership-request-deny -- [guild-id] [player-id]
    . Kick:
    structsd tx structs guild-membership-kick -- [guild-id] [player-id]
    .
  4. Rank management — Update a member's rank:
    structsd tx structs player-update-guild-rank TX_FLAGS -- [player-id] [guild-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 guild-update-entry-rank TX_FLAGS -- [new-entry-rank]
    . Requires PermUpdate (4) on guild; new rank must be >= caller's own rank.
  5. Settings — See Commands Reference:
    guild-update-endpoint
    ,
    guild-update-entry-substation-id
    ,
    guild-update-join-infusion-minimum
    (and
    -minimum-by-invite
    ,
    -minimum-by-request
    ),
    guild-update-owner-id
    . All use
    --
    before positional args.
  6. Central Bank — Mint:
    structsd tx structs guild-bank-mint TX_FLAGS -- [alpha-amount] [token-amount]
    (no guild-id — signer's guild is used implicitly; both amounts are raw integers). Redeem:
    structsd tx structs guild-bank-redeem -- [guild-id] [amount]
    . Confiscate and burn:
    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

ActionCommand
Create
structsd tx structs guild-create -- [reactor-id] [endpoint] [entry-substation-id]
Join
structsd tx structs guild-membership-join -- [guild-id] [infusion-ids]
Join proxy
structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids]
Invite
structsd tx structs guild-membership-invite -- [guild-id] [player-id]
Invite approve/deny
structsd tx structs guild-membership-invite-approve/deny -- [guild-id]
Invite revoke
structsd tx structs guild-membership-invite-revoke -- [guild-id] [player-id]
Request
structsd tx structs guild-membership-request -- [guild-id]
Request approve/deny
structsd tx structs guild-membership-request-approve/deny -- [guild-id] [player-id]
Request revoke
structsd tx structs guild-membership-request-revoke -- [guild-id]
Kick
structsd tx structs guild-membership-kick -- [guild-id] [player-id]
Update guild rank
structsd tx structs player-update-guild-rank -- [player-id] [guild-rank]
Update entry rank
structsd tx structs guild-update-entry-rank -- [new-entry-rank]
Update endpoint
structsd tx structs guild-update-endpoint -- [guild-id] [endpoint]
Update entry substation
structsd tx structs guild-update-entry-substation-id -- [guild-id] [substation-id]
Update infusion minimums
structsd tx structs guild-update-join-infusion-minimum/minimum-by-invite/minimum-by-request -- [guild-id] [value]
Update owner
structsd tx structs guild-update-owner-id -- [guild-id] [new-owner-player-id]
Bank mint
structsd tx structs guild-bank-mint -- [alpha-amount] [token-amount]
(signer's guild, raw integers)
Bank redeem
structsd tx structs guild-bank-redeem -- [guild-id] [amount]
Bank confiscate
structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount]
Set guild rank permission
structsd tx structs permission-guild-rank-set -- [object-id] [guild-id] [permission] [rank]
Revoke guild rank permission
structsd tx structs permission-guild-rank-revoke -- [object-id] [guild-id] [permission]

TX_FLAGS:

--from [key-name] --gas auto --gas-adjustment 1.5 -y

Verification

  • Guild:
    structsd query structs guild [id]
    — members, settings, owner.
  • Membership applications:
    structsd query structs guild-membership-application-all
    or by ID.
  • Bank collateral:
    structsd query structs guild-bank-collateral-address [guild-id]
    — verify reserves.
  • Guild rank permissions:
    structsd query structs guild-rank-permission-by-object-and-guild [object-id] [guild-id]
    — verify rank-based access.

Error Handling

  • Insufficient infusion: Guild may require minimum infusion to join. Query guild for
    joinInfusionMinimum
    ; meet requirement or get invite (bypass).
  • Already member: Cannot join twice. Check
    guild-membership-application
    status.
  • 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:
    guild-update-entry-rank
    requires new rank >= caller's own rank. Cannot set entry rank higher than your own authority.

See Also