SUIROLL

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

SUIROLL mostly matches a Sui lottery tool, but it handles wallet/API credentials and makes fairness/authentication claims that the provided code does not fully support.

Review carefully before installing. Use only a dedicated low-value/testnet Sui key, assume Moltbook credentials may be stored under ~/.config/suiroll, and do not rely on the advertised provable-fairness or anti-Sybil guarantees unless the developer adds real verification and clearer credential handling.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Users may believe the lottery result has been independently and cryptographically verified when the provided CLI only appears to inspect chain data.

Why it was flagged

The command is presented as VRF proof verification, but the provided code fetches and displays on-chain object fields and status checks; it does not show cryptographic verification of a VRF proof or winner-selection proof.

Skill content
.description('Verify lottery results and VRF proof') ... const lottery = await client.getObject({ id: options.lotteryId, options: { showContent: true, showType: true } }); ... checks.push('✅ Lottery object exists on-chain');
Recommendation

Clearly disclose what is and is not verified, or implement actual proof/commitment/randomness verification in the CLI before advertising provable fairness.

What this means

A stale or edited local session file could cause the CLI to submit the wrong agent ID and weakens the advertised anti-Sybil protection.

Why it was flagged

A saved local session becomes authoritative for the agent identity used in the lottery entry, without re-verifying the Moltbook token when the session is loaded.

Skill content
if (session) { console.log('✓ Found saved Moltbook session'); console.log(`  Agent: ${session.agent.name}\n`); return session; } ... agentId = agentInfo.agent.id;
Recommendation

Re-verify saved sessions with Moltbook before each entry, bind entries to a verifiable token/signature, and fail closed if the session cannot be validated.

What this means

Anyone or any local process that can read that file may obtain the Moltbook API key and impersonate or misuse the agent account within Moltbook's API scope.

Why it was flagged

The CLI persists the Moltbook API key and agent profile in a plaintext JSON file under the user's home config directory.

Skill content
const sessionPath = path.join(sessionDir, 'moltbook-session.json'); ... fs.writeFileSync(sessionPath, JSON.stringify({ apiKey, agent }, null, 2));
Recommendation

Avoid storing API keys by default, use the OS credential store or strict file permissions, document the storage clearly, and provide a logout/delete-session command.

What this means

If a valuable wallet key is configured, agent-invoked commands could spend gas or move prize funds through irreversible on-chain transactions.

Why it was flagged

The skill reads a Sui private key from the environment and uses it to sign and submit blockchain transactions. This is purpose-aligned, but high-impact and not reflected in the registry credential declarations.

Skill content
const privateKey = process.env.SUI_PRIVATE_KEY; ... const signed = await keypair.signTransaction(bytes); return await client.executeTransactionBlock({ transactionBlock: signed.bytes, signature: signed.signature, ... });
Recommendation

Use a dedicated low-value/testnet wallet, require explicit user confirmation for signing actions, and declare the private-key requirement in metadata.

What this means

Users may run local package installation/linking steps without the normal registry install visibility.

Why it was flagged

The documentation instructs users to install and globally link an npm CLI even though the registry says there is no install spec. That is expected for a CLI, but should be reviewed because the package handles credentials.

Skill content
cd ~/.openclaw/skills/suiroll
npm install
npm link
Recommendation

Inspect package.json and package-lock.json before installing, pin/review dependencies, and add an explicit install spec or clearer provenance information.