Skip to content

account Table

Account credentials and per-account settings (username, password hash/verifier, expansion, locale).


Schema Summary

Field Type Key Null Default Extra
id int(11) unsigned PRI NO auto_increment
username varchar(32) UNI NO
gmlevel tinyint(3) unsigned MUL NO 0
sessionkey longtext YES
v longtext YES
s longtext YES
token_key varchar(100) NO ''
email text YES
joindate timestamp NO current_timestamp()
last_ip varchar(30) NO '0.0.0.0'
locked tinyint(3) unsigned NO 0
lock_country varchar(2) NO '00'
last_login timestamp NO '0000-00-00 00:00:00'
online tinyint(4) NO 0
expansion tinyint(3) unsigned NO 0
mutetime bigint(40) NO 0
locale tinyint(3) unsigned NO 0
os varchar(4) NO ''
platform varchar(4) NO ''
current_realm tinyint(3) unsigned NO 0
flags int(10) unsigned NO 0
security varchar(255) YES
email_verif tinyint(1) NO 0
geolock_pin int(11) YES 0

Field Breakdown

  • id - Primary Key. Account id (referenced as account in characters DB).
  • username - Unique. Login name (uppercase-normalized for lookups).
  • gmlevel - Legacy per-account GM level snapshot; live level comes from account_access.gmlevel.
  • sessionkey - SRP6 session key written by realmd at each successful login; reused for reconnect and world-server authentication until replaced by the next login.
  • v - SRP6 verifier, never a plain password.
  • s - SRP6 salt used with v for the secure login handshake.
  • token_key - Authenticator token key when 2FA is enabled. (2FA secrets are stored in security).
  • email - Account e-mail (password recovery / identification).
  • joindate - Registration date.
  • last_ip - IP of the most recent login.
  • locked - Lock/authenticator bitmask (LockFlag): 1 = IP lock to last_ip, 2 = fixed PIN required, 4 = TOTP authenticator, 8 = always enforce authenticator, 16 = GeoIP country lock, 32 = GeoIP city lock.
  • lock_country - Country code of the client's last-login IP (populated by external tooling); never written or read by core.
  • last_login - Timestamp of previous successful login.
  • online - 1 while logged into any realm served by auth server.
  • expansion - Expansion level (.account set addon): 0 classic, 1 TBC, 2 WotLK. Set via command only.
  • mutetime - Unix timestamp until chat mutes expire (0 none).
  • locale - Client locale id selected at login (drives localized DBC data).
  • os - OS identifier reported by client (Win/Mac).
  • platform - Detailed platform string reported by client.
  • current_realm - Last realm played (id).
  • flags - Server-side account flag bits: 0x1 = muted from public chat channels (set by the anticheat for SEC_PLAYERs; read back at world login and enforced when sending messages to public channels).
  • security - Authenticator secret used to verify the fixed PIN or TOTP code entered at login.
  • email_verif - E-mail verification state; with ReqEmailVerification enabled unverified accounts cannot log in.
  • geolock_pin - PIN that must be entered at next login (set after suspicious logins); cleared once entered correctly.