Skip to content
Control Plane API
Skip navigation

Request Connectivity

Ask for the credentials and configuration that make traffic leave from an agent's own address.

Published

On this page (8)

Request Connectivity Documentation

connect hands back everything a client needs to send traffic from an agent's /128. It needs dns:connect.

connect

whisper-call
CALL whisper.agents({op: 'connect', args: {agent: 'checkout-bot', tier: 'socks5'}})

Arguments

ArgumentContract
agentOptional. Names the agent to connect. Accepts an identifier or an address.
tiersocks5 is the default. wireguard asks for a routed tunnel, anyip for a source-bound path. Connectivity tiers says what each one gives you.
public_keyYour WireGuard public key. Send it with tier: 'wireguard'.

Returns, on every tier

ColumnHolds
tierThe tier you were actually given.
addressThe /128 traffic will leave from.
fqdnThe canonical name of that address.

Returns, on a proxy tier

ColumnHolds
connection_stringA ready-to-use SOCKS5 URL with the bearer in it.
socks5_endpointHost and port for a SOCKS5 client.
http_proxyThe same path as an HTTP proxy URL.
dnsThe resolver to use over that path.
doh_urlThe encrypted-DNS URL for the same identity.

Returns, on a WireGuard tier

ColumnHolds
wireguard_configA complete configuration file.
server_public_keyThe peer's public key.
endpointHost and port of the peer.
client_private_keyYour side's private key, when Whisper generated the pair.
dnsThe resolver to use inside the tunnel.

Use what the answer gives you

Read the endpoint out of connection_string, http_proxy or wireguard_config rather than writing a host name into your own configuration, because the answer is what is current for your account. Where a name has to appear in prose, the proxy path is connect.whisper.online:443 and the HTTP form is egress.whisper.online. The proxy user name is the literal w, and the password is the bearer.

The bearer

The credential in connection_string has the form et_.... It is bound to the agent's own /128 and is refused from any other source address, so a leaked bearer does not move. It can also travel as a header:

text
Proxy-Authorization: Bearer et_...

Egress authentication covers the header forms and the certificate-based alternative. To prove the path is working end to end, Send traffic from your address walks the check.

Errors

CodeStatusMeaning
BAD_ARGS400tier is not one of the accepted values, or public_key is malformed.
NOT_FOUND404No such agent under this account.
AGENT_REVOKED403The identity has been cut and cannot be connected.
WG_KEY_IN_USE409That public key is already bound to another identity. Generate a new pair.