Use this file to discover all available pages before exploring further.
This is the shortest path from zero to a real on-chain policy. Five minutes if
your wallet is funded with Base Sepolia ETH (for the onboarding signature only —
the protocol itself never asks the agent for gas).
Sign one message with your wallet — the API verifies and returns a
fresh lk_… key.
import { Wallet } from 'ethers'import { LuminaClient } from '@lumina-org/sdk'const wallet = new Wallet(process.env.PRIVATE_KEY!)const lumina = new LuminaClient({ apiKey: '' }) // empty for onboardconst { apiKey } = await lumina.agent.onboard(wallet, { label: 'my-bot' })console.log('Save this NOW (shown only once):', apiKey)
The signed message is Lumina onboarding for {address} at {timestamp}. The
SDK builds it for you. Caps: 3 active keys per wallet, 10 onboard attempts
per hour per IP, ±5 minute timestamp window.