On each platform (Steam, PlayStation, Xbox, Apple, etc.), obtain the platform-specific auth token using the platform's SDK
Call EOS_Connect_Login with an EOS_Connect_Credentials struct containing the token and the appropriate EOS_EExternalCredentialType (e.g. EOS_ECT_STEAM_SESSION_TICKET for Steam)
If EOS_Connect_Login returns EOS_InvalidUser, a ContinuanceToken is provided — this means the external account is not yet linked; call EOS_Connect_CreateUser to create a new EOS Product User ID (PUID) from this token
To link an additional platform to an existing PUID, call EOS_Connect_LinkAccount with the ContinuanceToken from the new platform's EOS_Connect_Login failure, passing the existing authenticated user's EOS_HConnect handle
Store the PUID as your cross-platform player identifier; query it with EOS_Connect_GetProductUserId for all subsequent EOS service calls
Known gotchas
EOS Connect identity (PUID) is separate from Epic Account Services identity; you do not need an Epic Games account — any supported external credential type is sufficient to create a PUID
EOS_Connect_Login returning EOS_InvalidUser is not an error; it is the expected response for a first-time login and the ContinuanceToken is valid only for a short window — link or create the user promptly
Unlinking an external account via EOS_Connect_UnlinkAccount removes that platform's ability to log in; ensure the player has at least one other linked credential before allowing unlinking
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp