VPNSmith
Free tool - vmess, vless, trojan, ss

vmess / vless link decoder and converter

A share link packs a whole proxy config into one line. Paste it here to read what is inside (server, transport, TLS or REALITY, flow), check whether it is safe to use, and turn it into a client config for Xray-core, sing-box or Clash Meta (mihomo). The link holds the server's credentials: it is decoded in your browser and never leaves it.

Runs entirely in your browser: the link and its credentials are never sent anywhere.

One link at a time. An example REALITY link is loaded: replace it with yours.

What the link contains

Protocol
VLESS
Name
example-reality
Server
203.0.113.10:443
Transport
tcp
Security
reality
SNI / Host
www.example.com
Flow
xtls-rprx-vision
ID or password (shortened)
1111...5555

Security review

No blocking problem found in this link.

    config.json
    {
      "log": {
        "loglevel": "warning"
      },
      "inbounds": [
        {
          "tag": "socks-in",
          "listen": "127.0.0.1",
          "port": 10808,
          "protocol": "socks",
          "settings": {
            "udp": true
          }
        },
        {
          "tag": "http-in",
          "listen": "127.0.0.1",
          "port": 10809,
          "protocol": "http"
        }
      ],
      "outbounds": [
        {
          "tag": "proxy",
          "protocol": "vless",
          "settings": {
            "vnext": [
              {
                "address": "203.0.113.10",
                "port": 443,
                "users": [
                  {
                    "id": "11111111-2222-4333-8444-555555555555",
                    "encryption": "none",
                    "flow": "xtls-rprx-vision"
                  }
                ]
              }
            ]
          },
          "streamSettings": {
            "network": "tcp",
            "security": "reality",
            "realitySettings": {
              "serverName": "www.example.com",
              "fingerprint": "chrome",
              "publicKey": "Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw",
              "shortId": "6ba85179e30d4fc2",
              "spiderX": "/"
            }
          }
        },
        {
          "tag": "direct",
          "protocol": "freedom"
        }
      ]
    }

    A link you did not create runs on someone else's server

    Whoever runs it sees your real IP and the sites you visit, and can cut it at any time. For a tunnel only you control, run VLESS REALITY on your own VPS: the Contabo entry VPS includes a public IPv4, root access and plenty of traffic.

    Generate your own REALITY config →

    Affiliate link: we may earn a commission at no extra cost to you. The converter stays free and does not depend on it.

    See the Contabo VPS

    What a share link contains, and why hand conversion breaks

    A vmess:// link is a base64-encoded JSON object: decode it and you get fields named add, port, id, net, tls, sni. A vless:// or trojan:// link is closer to a URL: the UUID or password sits before the @, the server and port after it, and every option travels as a query parameter (type, security, sni, fp, pbk, sid, flow). An ss:// link carries the cipher and password, base64-encoded or not depending on the client that produced it.

    None of these names match the config files. Xray-core calls the transport streamSettings.network and the REALITY key publicKey; sing-box calls them transport.type and tls.reality.public_key; Clash Meta uses network and reality-opts. Most failed imports come from one field put in the wrong place, a path left URL-encoded, or a gRPC service name that a vmess link stores in its path field. The converter does that mapping for you, then reviews the link for the mistakes that make a connection fail or leak.

    The review matters more than the conversion. A vless:// link with security=none sends your traffic without any encryption, a link with allowInsecure=1 accepts any certificate, and an old vmess link with alterId above 0 will not work with current cores. The converted configs always keep certificate checking on.

    Where each link field goes

    The same value has a different name in the link, in Xray-core and in sing-box. This is the mapping the converter applies.

    In the linkWhat it isXray-coresing-box
    add / host@Server address (IP or domain)addressserver
    portServer portportserver_port
    id / uuid@User ID (VLESS, VMess) or password (Trojan)users[].iduuid
    net / typeTransport: tcp, ws, grpc, httpupgrade, xhttpstreamSettings.networktransport.type
    tls / securityTransport security: none, tls or realitystreamSettings.securitytls.enabled, tls.reality
    sniServer name sent in the TLS handshaketlsSettings.serverNametls.server_name
    fpuTLS fingerprint the client imitates (chrome, firefox...)fingerprinttls.utls.fingerprint
    pbk, sidREALITY public key and short IDrealitySettings.publicKey, shortIdtls.reality.public_key, short_id
    flowxtls-rprx-vision, only over TCP with TLS or REALITYusers[].flowflow
    host, pathWebSocket or HTTPUpgrade Host header and pathwsSettings.host, pathtransport.headers.Host, path
    serviceNamegRPC service namegrpcSettings.serviceNametransport.service_name

    Circumventing network restrictions is restricted or unlawful in some jurisdictions. Check what applies where you are. Only use links for servers you are allowed to use.

    Frequently asked questions

    Is it safe to paste my link here?
    The page decodes the link with JavaScript in your browser and sends nothing: there is no form submission and no request carries the link. You can load the page, disconnect from the network and the converter keeps working. The ID or password is shortened in the summary so that a screenshot of the result does not expose it.
    How do I convert a vmess link to JSON?
    Paste it in the box: the tool decodes the base64, reads the v2rayN fields (add, port, id, aid, net, path, tls, sni) and writes a complete Xray-core client config with a SOCKS proxy on 127.0.0.1:10808 and an HTTP proxy on 10809. The sing-box tab gives the same server as a sing-box outbound with a mixed proxy on 127.0.0.1:2080.
    Why does my vless link not connect in Xray?
    The review lists the usual causes: security=none on a public server (the Xray-core documentation states that VLESS without Encryption only reaches private addresses that way), flow=xtls-rprx-vision on a WebSocket or gRPC transport (Vision needs raw TCP), a REALITY link without pbk or sni, or a certificate the client rejects. Fix the line marked as danger first.
    Are free vmess or vless links from Telegram channels safe?
    They work until they stop, and the person running the server sees your IP address and every site you connect to, plus the content of anything that is not HTTPS. Some of these links also use security=none or allowInsecure. For anything personal, a server you control is the safer choice: a VLESS REALITY setup on a small VPS takes a few minutes with our generator.
    Why is the sing-box or Clash tab empty?
    Some transports exist in only one core. XHTTP is an Xray-core transport that sing-box does not support; mKCP, HTTP/2 and QUIC transports are not converted, and Shadowsocks links that need a SIP003 plugin depend on the client. The review explains which case applies, and the Xray-core tab usually still works.