Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Structs Diplomacy

v1.2.0

Handles permissions, address management, and inter-player coordination in Structs. Use when granting or revoking permissions on objects, registering new addr...

0· 367·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md repeatedly calls the CLI binary `structsd` and shows TX_FLAGS that require a signer (e.g. `--from [key-name]`), but the skill metadata declares no required binaries, env vars, or config paths. A permission-management skill reasonably needs the `structsd` CLI and access to a signing key / node endpoint; those are missing from the declared requirements.
!
Instruction Scope
Instructions direct the agent to run transaction commands (e.g. `structsd tx structs permission-grant-on-object ... -y`) that will modify on-chain state and require signing. The SKILL.md does not describe how signing keys are provided, whether a dry-run option should be used, or safeguards to prevent accidental submission. There is no guidance about network/rpc configuration (testnet vs mainnet).
Install Mechanism
This is instruction-only (no install spec), which lowers installer risk. However, because it relies on an external CLI (`structsd`) being present, the absence of a declared install step or requirement means the skill assumes the environment has that tool installed — an implicit dependency that the metadata does not state.
!
Credentials
No environment variables, credentials, or config paths are declared, yet the workflow requires a signer (`--from [key-name]`) and likely access to local keyrings or node endpoints. The skill does not justify or declare access to wallet keys or node RPC endpoints; this mismatch could lead to unexpected credential use if the agent is allowed to run commands.
Persistence & Privilege
always is false and there is no install hook or self-modifying behavior. The skill does not request elevated persistence or modification of other skills/configs.
What to consider before installing
This skill looks like a straight mapping of CLI commands for managing Structs permissions, but it omits important operational details. Before installing or allowing the agent to use it: (1) Confirm the environment actually has the `structsd` CLI and that you trust that binary. (2) Understand where signing keys live — do not expose private keys or unlock a wallet to the agent unless you explicitly intend it to submit transactions. (3) Prefer running in a testnet or with dry-run steps until you verify behavior. (4) Ask the publisher for missing metadata (required binaries, network/RPC config, expected key management). (5) If you will allow autonomous invocation, require explicit human confirmation for any command that uses `--from` or the `-y` flag to avoid accidental on-chain changes.

Like a lobster shell, security has layers — review code before you run it.

latestvk9718qvsgvq86pvemds6wyw68s83xv3d
367downloads
0stars
6versions
Updated 7h ago
v1.2.0
MIT-0

Structs Diplomacy

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.

Permission System (24-bit)

Permissions use a 24-bit bitmask. Individual permissions can be combined (OR'd together). See knowledge/mechanics/permissions for the full permission system reference.

PermissionValueDescription
PermPlay1Basic play access
PermAdmin2Administrative control (manage permissions)
PermUpdate4Update object settings
PermDelete8Delete object
PermTokenTransfer16Transfer tokens
PermTokenInfuse32Infuse tokens into reactors/generators
PermTokenMigrate64Migrate tokens between objects
PermTokenDefuse128Defuse (withdraw) tokens
PermGuildMembership512Manage guild membership
PermSubstationConnection1024Connect to substations
PermAllocationConnection2048Connect to allocations
PermReactorGuildCreate524288Create guilds on a reactor
PermHashBuild1048576Submit build proof-of-work
PermHashMine2097152Submit mine proof-of-work
PermHashRefine4194304Submit refine proof-of-work
PermHashRaid8388608Submit raid proof-of-work
PermAll16777215All permissions (full access)

Procedure

  1. Query permissionsstructsd query structs permission [id], permission-by-object [object-id], permission-by-player [player-id].
  2. Grant on objectstructsd tx structs permission-grant-on-object TX_FLAGS -- [object-id] [player-id] [permissions]. Permissions are additive.
  3. Revoke on objectstructsd tx structs permission-revoke-on-object -- [object-id] [player-id] [permissions].
  4. Set on objectstructsd tx structs permission-set-on-object -- [object-id] [player-id] [permissions] — clears existing and applies new set.
  5. Address-level permissionsstructsd tx structs permission-grant-on-address -- [address] [permissions], permission-revoke-on-address -- [address] [permissions], permission-set-on-address -- [address] [permissions].
  6. Guild rank permissionsstructsd tx structs permission-guild-rank-set TX_FLAGS -- [object-id] [guild-id] [permission] [rank] — grant permission on object to guild members at or above specified rank. Revoke: structsd tx structs permission-guild-rank-revoke TX_FLAGS -- [object-id] [guild-id] [permission].
  7. Address management — Register: structsd tx structs address-register TX_FLAGS -- [address] [proof-pubkey] [proof-signature] [permissions]. Revoke: structsd tx structs address-revoke -- [address]. Update primary: structsd tx structs player-update-primary-address -- [new-address].

Commands Reference

ActionCommand
Grant on objectstructsd tx structs permission-grant-on-object -- [object-id] [player-id] [permissions]
Revoke on objectstructsd tx structs permission-revoke-on-object -- [object-id] [player-id] [permissions]
Set on objectstructsd tx structs permission-set-on-object -- [object-id] [player-id] [permissions]
Grant on addressstructsd tx structs permission-grant-on-address -- [address] [permissions]
Revoke on addressstructsd tx structs permission-revoke-on-address -- [address] [permissions]
Set on addressstructsd tx structs permission-set-on-address -- [address] [permissions]
Set guild rank permissionstructsd tx structs permission-guild-rank-set -- [object-id] [guild-id] [permission] [rank]
Revoke guild rank permissionstructsd tx structs permission-guild-rank-revoke -- [object-id] [guild-id] [permission]
Address registerstructsd tx structs address-register -- [address] [proof-pubkey] [proof-sig] [permissions]
Address revokestructsd tx structs address-revoke -- [address]
Update primary addressstructsd tx structs player-update-primary-address -- [new-address]

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

QueryCommand
Permission by IDstructsd query structs permission [id]
Permission by objectstructsd query structs permission-by-object [object-id]
Permission by playerstructsd query structs permission-by-player [player-id]
Guild rank permission by objectstructsd query structs guild-rank-permission-by-object [object-id]
Guild rank permission by object+guildstructsd query structs guild-rank-permission-by-object-and-guild [object-id] [guild-id]
Addressstructsd query structs address [address]
Addresses by playerstructsd query structs address-all-by-player [player-id]

Verification

  • Permission: structsd query structs permission-by-object [object-id] — list players with access.
  • Guild rank permission: structsd query structs guild-rank-permission-by-object [object-id] — list guild rank-based permissions.
  • Address: structsd query structs address [address] — verify registration, player link.
  • Player addresses: structsd query structs address-all-by-player [player-id] — all linked addresses.

Error Handling

  • Permission denied: Signer lacks permission on object. Check permission-by-object for current grants.
  • Address already registered: Use address-revoke first, or link to different player.
  • Invalid proof: Address registration requires valid proof pubkey and signature. Verify auth flow.
  • Object not found: Object ID may be stale. Re-query to confirm entity exists.

See Also

Comments

Loading comments...