Skip to main content
All scopes are optional. Omitting a scope means that dimension is unlimited. null is also treated as unlimited in the JSON config.

Spend Limits

ScopeTypeDescription
maxSolPerTxnumberMax SOL transferable in a single transaction
maxSolPerDaynumberRolling 24h SOL spend ceiling (sliding window)
maxSolPerWeeknumberRolling 7-day SOL spend ceiling
maxSolPerSessionnumberMax SOL spend for the current process lifetime
Note: SOL amounts are measured from System Program Transfer instructions. DeFi protocol amounts (Drift deposits, Jupiter swaps) are not currently parsed — see Deferred Features.

Rate Limits

ScopeTypeDescription
maxTxPerHournumberBurst protection — max txs in any 60-minute window
maxTxPerDaynumberMax txs signed in any 24-hour window
maxTxPerSessionnumberMax txs this process may sign before halting

Program / Protocol Controls

ScopeTypeDescription
allowedProgramsstring[]Whitelist of on-chain program IDs allowed at the top-level. When non-empty, any transaction involving a program not on this list is rejected.
blockedProgramsstring[]Explicit denylist — checked even if allowedPrograms is empty.
Common program IDs:
ProgramID
System Program11111111111111111111111111111111
DriftdRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH
JupiterJUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
Token ProgramTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Associated Token ProgramATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJe1bbd
Memo ProgramMemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr

Recipient Controls

ScopeTypeDescription
allowedRecipientsstring[]Whitelist of addresses SOL may be sent to. When non-empty, sends to any other address are blocked.
blockedRecipientsstring[]Explicit denylist of addresses.
maxUniqueRecipientsPerDaynumberLimit address fan-out — prevents distribution to many new addresses per day.

Time-Based Controls

ScopeTypeDescription
activeHours{ from: number, to: number, timezone: string }Clock window per calendar day when signing is permitted. from and to are 0–23 (UTC hours).
activeDaysstring[]Days of the week when signing is permitted: "mon" "tue" "wed" "thu" "fri" "sat" "sun"
expiresAtDate | stringHard cutoff — all signing refused after this datetime.
startsAtDate | stringScheduled activation — signing refused before this datetime.
maxSessionDurationHoursnumberAuto-expire the scoped wallet N hours after process start.

Instruction-Level Controls

ScopeTypeDescription
maxInstructionsPerTxnumberLimit transaction complexity. Transactions with more instructions than this are rejected.
requireMemobooleanEvery signed transaction must include a Memo Program instruction. Useful for on-chain audit trails.

Emergency Controls

ScopeTypeDescription
pausedbooleanKill switch. When true, all signing is immediately blocked regardless of any other config. Set via glosso policy pause.

Deferred Features

These scopes appear in the PolicyConfig type but are not yet enforced by the engine:
ScopeStatusWhy
allowedTokenMintsPlannedRequires Token Program instruction parsing
maxCollateralDepositPlannedRequires per-protocol IDL discriminators for deposit instructions
maxPositionSizeSolPlannedSame — protocol-specific instruction parsing
maxLeveragePlannedSame
maxOpenPositionsPlannedRequires querying on-chain state
requireConfirmationPlannedNeeds async approval flow / human-in-the-loop