Friend Services

Revision as of 14:48, 12 December 2024 by TimmSkiller (talk | contribs) (add NEX Server Structures section and FriendKey)

Friend Service "frd:u"

Command Header Description
0x00010000 HasLoggedIn
0x00020000 IsOnline
0x00030002 Login
0x00040000 Logout
0x00050000 GetMyFriendKey
0x00060000 GetMyPreference
0x00070000 GetMyProfile
0x00080000 GetMyPresence
0x00090000 GetMyScreenName
0x000A0000 GetMyMii
0x000B0000 GetMyLocalAccountId
0x000C0000 GetMyPlayingGame
0x000D0000 GetMyFavoriteGame
0x000E0000 GetMyNcPrincipalId
0x000F0000 GetMyComment
0x00100040 GetMyPassword
0x00110080 GetFriendKeyList
0x00120042 GetFriendPresence
0x00130142 GetFriendScreenName
0x00140044 GetFriendMii
0x00150042 GetFriendProfile
0x00160042 GetFriendRelationship
0x00170042 GetFriendAttributeFlags
0x00180044 GetFriendPlayingGame
0x00190042 GetFriendFavoriteGame
0x001A00C4 GetFriendInfo
0x001B0080 IsIncludedInFriendList
0x001C0042 UnscrambleLocalFriendCode
0x001D0002 UpdateGameModeDescription
0x001E02C2 UpdateGameMode
0x001F0042 SendInvitation
0x00200002 AttachToEventNotification
0x00210040 SetNotificationMask
0x00220040 GetEventNotification
0x00230000 GetLastResponseResult
0x00240040 PrincipalIdToFriendCode
0x00250080 FriendCodeToPrincipalId
0x00260080 IsValidFriendCode
0x00270040 ResultToErrorCode
0x00280244 RequestGameAuthentication
0x00290000 GetGameAuthenticationData
0x002A0204 RequestServiceLocator
0x002B0000 GetServiceLocatorData
0x002C0002 DetectNatProperties
0x002D0000 GetNatProperties
0x002E0000 GetServerTimeInterval
0x002F0040 AllowHalfAwake
0x00300000 GetServerTypes
0x00310082 GetFriendComment
0x00320042 SetClientSdkVersion
0x00330000 GetMyApproachContext
0x00340046 AddFriendWithApproach
0x00350082 DecryptApproachContext
0x00360000 GetExtendedNatProperties

"frd:n"

Command Header Description
0x00010000 GetHandleOfNdmStatusChangedEvent
0x00020000 Resume
0x00030040 SuspendAsync
0x00040000 QueryStatus

"frd:a"

This contains a similar (probably the same) command handler from 0x0001.... to 0x002F.... as them in frd:u. In addition, it also contains

Command Header Description
0x04010100 CreateLocalAccount
0x04020040 ?
0x04030040 SetLocalAccountId
0x04040000 ?
0x04050000 Used in creating the user Mii. No cmdbuff parameters.
0x04060042 AddFriendOnline
0x04070D80 AddFriendOffline
0x040802C0 ?
0x04090100 RemoveFriend
0x040A0100 UpdatePlayingGame
0x040B00C0 UpdatePreferences
0x040C0800 UpdateMii
0x040D0100 UpdateFavoriteGame
0x040E0040 UpdateNcPrincipalId
0x040F... UpdateComment
0x04100000 ?

HTTPS Requests

Trusted RootCAs

No RootCertChain(s) are used. For the nasc site, friends-module uses HTTPC:AddDefaultCert with the following certIDs: 0x1, 0x2, and 0x3.

NEX Structures

FriendKey

Offset Size Description
0x0 0x4 Principal ID
0x4 0x4 padding
0x8 0x8 Friend Code

Server Types

The server type is stored internally as a combination of two values, the first value represents the server type letter and the second value is the number that follows it. For example, the production server type is "L1", so the first value is 0 and the second value is 1.

Official servers only support the letters L, C, S, D, I, T, J or U.

Value Server Type Letter
0 L
1 C
2 S
3 D
4 I
5 T
6 U (fallback to default value)
7 J
8 X
9 A
10 B
11 C
12 D
13 E
14 F
15 G
16 H
17 I
18 J
19 K
20 L
21 M
22 N
23 O
24 P
25 Q
>=26 U