When an agent attempts an operation that exceeds its policy limits or requires explicit human approval, the x0-guard program generates a Blink — a Solana Action that the owner can approve from any Blink-compatible wallet or application.Documentation Index
Fetch the complete documentation index at: https://docs.x0protocol.dev/llms.txt
Use this file to discover all available pages before exploring further.
When Blinks Are Triggered
Blink Types
- Transfer Approval
- Escrow Release
- Policy Update
Generated when an agent transfer exceeds policy limits.Fields:
| Field | Description |
|---|---|
recipient | Destination wallet address |
amount | Transfer amount in micro-units |
mint | Token mint to transfer |
memo | Human-readable reason for transfer |
Rate Limiting
Blinks are rate-limited to prevent spam and denial-of-service:| Parameter | Value | Description |
|---|---|---|
MAX_BLINKS_PER_HOUR | 3 | Maximum Blinks per agent per hour |
BLINK_GENERATION_COST_LAMPORTS | 1,000,000 | 0.001 SOL burned per Blink |
BLINK_EXPIRY_SECONDS | 900 | Blinks expire after 15 minutes |
BlinkRateLimitExceeded (0x1130).
Blink Lifecycle
Generation
The agent SDK creates a Blink object containing action details, encodes it as a Solana Actions URL, and optionally generates a QR code.
Delivery
The Blink URL is surfaced to the owner via the agent’s interface — push notification, chat message, email, or QR display.
Review
The owner opens the Blink in any Solana Actions-compatible wallet (Phantom, Solflare, Dialect, etc.) and reviews the requested action.
Approval
The owner signs the transaction in-wallet. The signed transaction is submitted directly to Solana — no intermediary.
Solana Actions Metadata
The SDK produces an Actions-compliant JSON metadata response for rendering in Blink clients:QR Code Generation
For mobile-first approval flows:Validation
Events
| Event | Fields | When |
|---|---|---|
BlinkGenerated | policy, agent, amount, recipient, expires_at, timestamp | Blink created by guard |
Related Errors
| Code | Name | Description |
|---|---|---|
0x1130 | BlinkRateLimitExceeded | Agent exceeded 3 Blinks/hour |
0x1131 | BlinkExpired | Blink is past 15-minute window |
0x1132 | InvalidBlinkSignature | Submitted signature doesn’t match |
0x1133 | BlinkAlreadyProcessed | Blink was already approved/rejected |