wab:// URI scheme

The wab:// scheme is the mailto: of agent actions — a portable, registerable link that triggers a specific intent on a WAB-enabled site.

Grammar

wab://<host>/<action>[?param=value&param=value...]
PartMeaning
hostDomain that publishes /.well-known/wab.json
actionAn id from the manifest's actions[] array
paramsURL-encoded key/value pairs matching the action's parameter schema

Examples

Resolver

Until OS handlers ship, this site hosts a universal resolver:

https://webagentbridge.com/resolve?u=<url-encoded wab:// URI>

The resolver fetches the target's manifest, validates the action exists, and either:

  1. Renders a confirmation page showing exactly what will happen, or
  2. Redirects the user agent to the action's endpoint with the parameters attached (when the action is marked safe:true in the manifest).

Manifest declaration

{
  "version": "1",
  "host": "example-shop.com",
  "actions": [
    {
      "id": "checkout",
      "endpoint": "https://example-shop.com/api/checkout",
      "method": "POST",
      "params": {
        "sku": { "type": "string", "required": true },
        "qty": { "type": "integer", "minimum": 1 }
      },
      "safe": false,
      "uri_handler": "wab://example-shop.com/checkout"
    }
  ]
}

Native handler registration

Browsers can register a site as the handler for the wab scheme via navigator.registerProtocolHandler:

navigator.registerProtocolHandler('web+wab',
  'https://your-agent.example/handle?u=%s',
  'My WAB-aware agent');

Note: browsers require the web+ prefix for unregistered schemes — the canonical wire form remains wab:// for portability.