Skip to main content
Mullvad VPN uses a unique account system based on randomly generated account numbers. This guide covers account creation, authentication, and voucher redemption.

Account Overview

Mullvad accounts are identified by a unique account number rather than email addresses or usernames. This privacy-focused approach means:
  • No personal information is required
  • Account numbers are randomly generated
  • You’re responsible for saving your account number securely
  • Account time is purchased in advance (prepaid model)

Creating a New Account

You can create a new Mullvad account directly from the CLI, which automatically logs you in.
1

Create Account

Use the account create command to generate a new account:
mullvad account create
This command:
  • Generates a new random account number via CreateNewAccount RPC
  • Automatically logs you into the new account
  • Creates a device entry for your current machine
  • Displays your account information
2

Save Your Account Number

After creation, you’ll see output like:
New account created!
Mullvad account:    1234567890123456
Expires at:         2026-03-03 19:00:00 -05:00
Device name:        Happy Seagull
Important: Save this account number securely. You’ll need it to log in on other devices.
3

Add VPN Time

New accounts come with limited trial time. Add more time using:

Logging In

Log into an existing Mullvad account on your device.
1

Interactive Login

Run the login command without an account number to be prompted:
mullvad account login
You’ll be prompted:
Enter an account number:
Type or paste your 16-digit account number.
2

Direct Login

Alternatively, provide the account number directly:
mullvad account login 1234567890123456
On success:
Mullvad account "1234567890123456" set

What Happens During Login

The LoginAccount RPC performs several operations:
  1. Validates the account number with Mullvad’s API
  2. Creates or retrieves a device entry for your machine
  3. Generates a WireGuard keypair for secure connections
  4. Registers the device with your account
  5. Stores authentication credentials locally
Each device is assigned a random name (e.g., “Happy Seagull”, “Brave Dolphin”) for easy identification. See Device Management for details.

Viewing Account Information

Check your current account status and details.

Basic Information

mullvad account get
Displays:
Mullvad account:    1234567890123456
Expires at:         2026-04-15 10:30:00 -05:00
Device name:        Happy Seagull

Verbose Output

Get detailed account and device information:
mullvad account get -v
Includes additional fields:
Mullvad account:    1234567890123456
Expires at:         2026-04-15 10:30:00 -05:00
Account id:         a1b2c3d4-e5f6-7890-abcd-ef1234567890
Device name:        Happy Seagull
Device id:          abc123def456
Device pubkey:      wg-pubkey-base64-string-here
Device created:     2026-03-01 14:20:00 UTC
The GetAccountData RPC retrieves account expiration time from the API. The daemon calls UpdateDevice internally to ensure device information is current.

Account States

Your account can be in one of three states:

Logged In

You’re authenticated with a valid account number and active device. The DeviceState is LOGGED_IN.
mullvad account get
Mullvad account:    1234567890123456
Expires at:         2026-04-15 10:30:00 -05:00
Device name:        Happy Seagull

Logged Out

No account is configured on this device. The DeviceState is LOGGED_OUT.
mullvad account get
Not logged in on any account

Revoked

Your device was removed from the account (manually or due to device limits). The DeviceState is REVOKED.
mullvad account get
The current device has been revoked
Mullvad account: 1234567890123456
If your device is revoked, you’ll need to log in again. This will create a new device entry (counting toward your device limit).

Logging Out

Remove your account from the current device and delete its device entry.
mullvad account logout
Output:
Removed device from Mullvad account

What Happens During Logout

The LogoutAccount RPC:
  1. Removes the device entry from your account on the API
  2. Deletes the WireGuard keys for this device
  3. Clears stored account credentials locally
  4. Frees up a device slot for your account
Always log out when you’re done using Mullvad on a device you no longer need. This prevents hitting the device limit and ensures old devices can’t reconnect.

Voucher Redemption

Vouchers add VPN time to your account. Purchase vouchers from authorized resellers or use promotional codes.
1

Obtain a Voucher

Vouchers are alphanumeric codes (e.g., ABCD-1234-EFGH-5678) that can be purchased from:
  • Mullvad’s website
  • Authorized resellers
  • Promotional campaigns
2

Redeem the Voucher

Use the account redeem command:
mullvad account redeem ABCD-1234-EFGH-5678
The command automatically strips hyphens and non-alphanumeric characters, so these formats all work:
mullvad account redeem ABCD-1234-EFGH-5678
mullvad account redeem ABCD1234EFGH5678
mullvad account redeem "abcd 1234 efgh 5678"
3

Confirm Time Added

On success, you’ll see:
Added 30 days to the account
New expiry date: 2026-05-15 10:30:00 -05:00
The SubmitVoucher RPC returns:
  • seconds_added: Duration added to your account (in seconds)
  • new_expiry: Your updated account expiration date

Voucher Validation

The daemon validates vouchers through the API. Common errors:
  • Invalid voucher: Code doesn’t exist or was mistyped
  • Already used: Voucher has been redeemed on another account
  • Expired: Voucher is past its expiration date

Account History

The daemon maintains a local history of accounts you’ve logged into on this device.

View Account History

The GetAccountHistory RPC retrieves the most recent account number:
# Shown automatically when device is revoked
mullvad account get
The current device has been revoked
Mullvad account: 1234567890123456

Clear Account History

Remove stored account history from local settings:
# Via management interface
# ClearAccountHistory RPC removes historical account data
Account history is stored locally only. Clearing it doesn’t affect your account on Mullvad’s servers.

Web Authentication Tokens

Get a temporary token to authenticate with Mullvad’s web interface.

Generate Auth Token

The GetWwwAuthToken RPC generates a short-lived token:
# Token retrieved via management interface for web authentication
# Allows accessing account settings on Mullvad's website without password
This token provides temporary access to your account on the Mullvad website, useful for:
  • Viewing detailed account information
  • Managing payment methods
  • Reviewing connection history
  • Downloading invoices
Web auth tokens expire quickly. Don’t share them as they provide full access to your account.

CLI Reference

CommandDescription
mullvad account createCreate and log into a new account
mullvad account login [ACCOUNT]Log into an existing account
mullvad account logoutLog out and remove device from account
mullvad account getDisplay current account information
mullvad account get -vDisplay verbose account and device details
mullvad account redeem <VOUCHER>Redeem a voucher code

gRPC Service Reference

The management interface provides these account-related RPCs:
RPCRequestResponseDescription
CreateNewAccountEmptyStringValueGenerate new account and return number
LoginAccountStringValue (account)EmptyAuthenticate with account number
LogoutAccountStringValue (reason)EmptyRemove device from account
GetAccountDataStringValue (account)AccountDataRetrieve account expiration and ID
GetAccountHistoryEmptyAccountHistoryGet most recent account number
ClearAccountHistoryEmptyEmptyClear stored account history
GetWwwAuthTokenEmptyStringValueGenerate web authentication token
SubmitVoucherStringValue (voucher)VoucherSubmissionRedeem voucher code

AccountData Message

message AccountData {
  string id = 1;                          // Account UUID
  google.protobuf.Timestamp expiry = 2;   // Expiration timestamp
}

VoucherSubmission Message

message VoucherSubmission {
  uint64 seconds_added = 1;               // Time added in seconds
  google.protobuf.Timestamp new_expiry = 2; // New expiration date
}

Build docs developers (and LLMs) love