Base64 JSON format

This format encodes a JSON profile as Base64 and adds vmess://. It differs from the VMessAEAD query-string URL format; their fields are not interchangeable.

For import errors, check truncation, line breaks, quotation marks or HTML escaping. Base64 is not encryption; do not publish live UUIDs or private server details.

FormatCopy
vmess://<Base64(JSON)>

Basic fields

Match the server settings. Preserve the types used by client exports for values such as port and alterId.

FieldMeaning
vShare-format version, commonly 2
psProfile label
add / portServer address / port
idAuthentication UUID
aidalterId; modern AEAD profiles typically use 0
scyVMess encryption; defaults to auto
netTransport such as tcp, ws, h2 or grpc
typeTransport disguise type, commonly none when unused

Transport-dependent fields

Interpret fields in the context of the transport. WebSocket paths must match the server; this format uses path for gRPC serviceName.

Transporthostpath
TCP HTTP disguiseHTTP Host, possibly multipleServer disguise configuration
WebSocketRequest HostRequest path
HTTP/2HostPath
QUICSecurity modeKey
mKCPConfiguration-dependentSeed
gRPCConfiguration-dependentserviceName

TLS and certificate fields

tls selects TLS, sni supplies the server name, alpn lists negotiated protocols and fp selects a TLS client fingerprint. vcn controls certificate-name verification and pcs pins certificate fingerprints.

Older links may include insecure. New Xray versions removed allowInsecure, so keeping an old field does not preserve that behavior. Check clock, SNI, trust chain and pinning when verification fails.

Certificate pinning

An example without live credentials

This pre-encoding JSON illustrates fields and is not a working server. Import valid parameters into the client and export a share link to avoid manual encoding errors.

JSON · format exampleCopy
{
  "v": "2",
  "ps": "Example WS TLS",
  "add": "proxy.example.com",
  "port": "443",
  "id": "00000000-0000-4000-8000-000000000000",
  "aid": "0",
  "scy": "auto",
  "net": "ws",
  "type": "none",
  "host": "proxy.example.com",
  "path": "/example",
  "tls": "tls",
  "sni": "proxy.example.com",
  "alpn": "h2,http/1.1",
  "fp": "chrome"
}