Console Guide
The Beacon Console at dial.wtf/console/beacon is where you create and manage Beacon projects. It handles project setup, config publishing, key management, domain allowlisting, and analytics.
Getting Access
- Connect your wallet — Sign in with your Ethereum or Solana wallet via SIWE/SIWS
- Request access — Submit a whitelist request with your company name, website URL, segment, and primary use case
- Get approved — Once approved, you can create Beacon projects
Beacon access is separate from Dial API/SDK access — each product has its own whitelist.
Console Structure
The console is organized into a project dashboard with six tabs:
| Tab | Purpose |
|---|---|
| Install | Embed snippet, AI coder instructions, installation status |
| Configure | Config builder with versioning, publish, and rollback |
| Keys | Generate and manage publishable keys |
| Domains | Domain allowlist per environment |
| Analytics | Event funnel and metrics |
| Docs | Quick links to documentation |
Creating a Project
- Navigate to
dial.wtf/console/beacon - Click Create Project
- Enter a project name and website origin (e.g.,
https://example.com) - Your project ID is generated automatically
Each wallet can create up to 3 Beacon projects.
Install Tab
The Install tab provides:
- Script snippet — Ready-to-paste
<script>tag with your project ID - AI coder instructions — Copy-paste instructions for AI coding assistants to install Beacon
- Installation status — Shows whether Beacon has pinged from your site, confirming the script is active
Configure Tab
Build and manage your Beacon configuration:
- Visual config builder — Edit branding, quick actions, lanes, triggers, verify gates, FAQ, and handoff
- Version history — Each publish creates a new version
- Publish — Push the current config live
- Rollback — Revert to any previous version
The config follows the schema documented in Config Reference.
Keys Tab
Generate publishable keys for domain validation:
| Key Type | Prefix | Usage |
|---|---|---|
| Development | beacon_pk_dev_... | For staging/development environments |
| Production | beacon_pk_live_... | For production deployments |
Keys are:
- Stored as hashes (the raw key is shown once at creation)
- Revocable at any time
- Scoped to a specific project
Include the key in your script tag:
<script
data-dial-project="your-project-id"
data-dial-key="beacon_pk_live_..."
src="https://cdn.dial.wtf/beacon/v1/dial-beacon.min.js"
async
></script>Domains Tab
Manage which domains are allowed to load your Beacon config:
- Add domains per environment (development, production)
- Wildcard support:
*.example.commatches all subdomains - Beacon validates the
Originheader against your allowlist before serving config
Analytics Tab
View Beacon engagement metrics:
- Event counts by type (viewed, opened, action clicked, verified, etc.)
- Period filters — 24 hours, 7 days, 30 days
- Funnel visualization — Track the conversion path from widget view to action
See Analytics for details on tracked events.
API Routes
The Console communicates with the following internal API routes:
| Endpoint | Methods | Purpose |
|---|---|---|
/api/console/beacon/whitelist | GET, POST | Whitelist status and requests |
/api/console/beacon/projects | GET, POST, PATCH | Project CRUD |
/api/console/beacon/keys | GET, POST, DELETE | Key management |
/api/console/beacon/config | GET, POST | Config versioning (publish/rollback) |
/api/console/beacon/domains | GET, POST, DELETE | Domain allowlist |
/api/console/beacon/analytics | GET | Analytics queries |
/api/console/beacon/ping | POST | Installation verification |
Public API
The embed script communicates with two public endpoints:
| Endpoint | Method | Purpose |
|---|---|---|
/api/v1/beacon/config | GET | Fetch project config (ETag caching) |
/api/v1/beacon/events | POST | Analytics event ingestion |