Install
openclaw skills install trifle-authClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Authenticate with the Trifle API using Sign-In with Ethereum (SIWE). Manages wallet-based authentication, JWT token storage, and session management for the Trifle ecosystem.
openclaw skills install trifle-authAuthenticate with the Trifle API (bot.trifle.life) using SIWE (Sign-In with Ethereum) for wallet-based authentication. Stores JWT tokens for use by other skills (snake-game, etc.).
cd ~/.openclaw/workspace/skills/trifle-auth
npm install
node trifle-auth.mjs generate
This generates a new Ethereum address and automatically saves the private key to 1Password (vault: Gigi, item: "EVM Wallet - Trifle Agent"). The key is never printed to stdout. If 1Password is unavailable, it falls back to a restricted file (~/.trifle-wallet.key, mode 600).
The skill reads the private key from:
TRIFLE_PRIVATE_KEY environment variable (first priority)op://Gigi/EVM Wallet - Gigi/private_key <!-- nocheck -->node trifle-auth.mjs login
This authenticates via SIWE and stores the JWT token in ~/.local/state/trifle-auth/auth-state.json.
# Authenticate and store JWT token
node trifle-auth.mjs login
# Check auth status and user info
node trifle-auth.mjs status
# Get JWT token path (written to a secure temp file, not stdout)
TOKEN=$(cat $(node trifle-auth.mjs token))
node trifle-auth.mjs token
# Generate a new wallet keypair
node trifle-auth.mjs generate
# Check ball balance
node trifle-auth.mjs balance
/auth/wallet/noncetrifle.life/auth/wallet/verifyLocation: ~/.local/state/trifle-auth/auth-state.json (XDG-compliant, override with TRIFLE_AUTH_STATE env var)
{
"token": "jwt-token-here",
"address": "0x...",
"userId": 123,
"username": "gigi",
"totalBalls": 50,
"lastLogin": "2026-02-05T15:00:00Z"
}
API requests include Origin: https://trifle.life header to satisfy CORS requirements. The backend validates the origin against its allowed list.