Account services: Difference between revisions

No edit summary
No edit summary
 
(80 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= acc:su =
This is "nn::account::IAccountServiceForAdministrator".
This was moved to [[NS_Services|ns]] with [13.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Returns an [[#IProfile]].
|-
| 6 || [3.0.0+] GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
|-
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
|-
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
|-
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
|-
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
|-
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
|-
| 105 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 106 || [9.0.0+] GetProfileSyncNotifier ||
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 112 || LoadSaveDataThumbnail ||
|-
| 113 || [5.0.0+] GetSaveDataThumbnailExistence ||
|-
| 120 || [10.0.0+] ListOpenUsersInApplication ||
|-
| 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
|-
| 140 || [6.0.0+] ListQualifiedUsers ||
|-
| 150 || [10.0.0-10.2.0] AuthenticateApplicationAsync ||
|-
| 151 || [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
|-
| 152 || [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount ||
|-
| 190 || [1.0.0-9.2.0] GetUserLastOpenedApplication ||
|-
| 191 || [7.0.0-19.0.1] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) ||
|-
| 200 || BeginUserRegistration ||
|-
| 201 || CompleteUserRegistration ||
|-
| 202 || CancelUserRegistration ||
|-
| 203 || DeleteUser ||
|-
| 204 || SetUserPosition ||
|-
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
|-
| 206 || CompleteUserRegistrationForcibly ||
|-
| 210 || [3.0.0+] CreateFloatingRegistrationRequest || Returns an [[#IFloatingRegistrationRequest]].
|-
| 211 || [8.0.0+] CreateProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x4-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
|-
| 212 || [8.0.0+] ResumeProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x14-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
|-
| 213 || [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount ||
|-
| 214 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount ||
|-
| 215 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse ||
|-
| 230 || AuthenticateServiceAsync || Returns an [[#IAsyncContext]].
|-
| 250 || GetBaasAccountAdministrator || Returns an [[#IAdministrator]].
|-
| 251 || [20.0.0+] SynchronizeNetworkServiceAccountsSnapshotAsync ||
|-
| 290 || ProxyProcedureForGuestLoginWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]] (formerly [[#IOAuthProcedureForGuestLogin]] with [1.0.0-2.3.0]).
|-
| 291 || [3.0.0+] ProxyProcedureForFloatingRegistrationWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
|-
| 292 || [20.0.0+] ProxyProcedureForDeviceMigrationAuthenticatingOperatingUser ||
|-
| 293 || [20.0.0+] ProxyProcedureForDeviceMigrationDownload ||
|-
| 299 || SuspendBackgroundDaemon || Returns an [[#ISessionObject]].
|-
| 350 || [20.0.0+] CreateDeviceMigrationUserExportRequest ||
|-
| 351 || [20.0.0+] UploadNasCredential ||
|-
| 352 || [20.0.0+] CreateDeviceMigrationUserImportRequest ||
|-
| 353 || [20.0.0+] DeleteUserMigrationSaveData ||
|-
| 400 || [18.0.0+] SetPinCode ||
|-
| 401 || [18.0.0+] GetPinCodeLength ||
|-
| 402 || [18.0.0-19.0.1] GetPinCode ||
|-
| 403 || [20.0.0+] GetPinCodeParity ||
|-
| 404 || [20.0.0+] VerifyPinCode ||
|-
| 405 || [20.0.0+] IsPinCodeVerificationForbidden ||
|-
| 410 || [18.0.0+] GetPinCodeErrorCount ||
|-
| 411 || [18.0.0-19.0.1] ResetPinCodeErrorCount ||
|-
| 412 || [18.0.0-19.0.1] IncrementPinCodeErrorCount ||
|-
| 413 || [20.0.0+] SetPinCodeErrorCount ||
|-
| 420 || [19.0.0+] SetStartPenaltyTime ||
|-
| 421 || [19.0.0+] GetStartPenaltyTime ||
|-
| 900 || [13.0.0+] SetUserUnqualifiedForDebug ||
|-
| 901 || [13.0.0+] UnsetUserUnqualifiedForDebug ||
|-
| 902 || [13.0.0+] ListUsersUnqualifiedForDebug ||
|-
| 910 || [16.0.0+] RefreshFirmwareSettingsForDebug ||
|-
| 997 || [3.0.0+] DebugInvalidateTokenCacheForUser ||
|-
| 998 || DebugSetUserStateClose ||
|-
| 999 || DebugSetUserStateOpen ||
|}
[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.
== IsUserRegistrationRequestPermitted ==
Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.
== TrySelectUserWithoutInteraction ==
Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.
== IManagerForSystemService ==
This is "nn::account::baas::IManagerForSystemService".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
|-
| 4 || [19.0.0+] LoadIdTokenCache ||
|-
| 100 || SetSystemProgramIdentification ||
|-
| 101 || RefreshNotificationTokenAsync ||
|-
| 110 || GetServiceEntryRequirementCacheForLogin ||
|-
| 111 || InvalidateServiceEntryRequirementCache ||
|-
| 113 || GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
|-
| 120 || GetNintendoAccountId ||
|-
| 121 || CalculateNintendoAccountAuthenticationFingerprint ||
|-
| 130 || GetNintendoAccountUserResourceCache ||
|-
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
|-
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 133 || GetNintendoAccountVerificationUrlCache ||
|-
| 134 || RefreshNintendoAccountVerificationUrlCacheAsync ||
|-
| 135 || RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
|-
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
|-
| 140 || GetNetworkServiceLicenseCache ||
|-
| 141 || RefreshNetworkServiceLicenseCacheAsync || Returns an [[#IAsyncContext]].
|-
| 142 || RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
|-
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
|-
| 180 || [18.0.0-19.0.1] GetRequestForNintendoAccountReauthentication ||
|-
| 181 || [20.0.0+] CreateProcedureToReauthenticateNintendoAccount ||
|-
| 182 || [20.0.0+] ResumeProcedureToReauthenticateNintendoAccount ||
|}
== IFloatingRegistrationRequest ==
This is "nn::account::baas::IFloatingRegistrationRequest".
Added with [3.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSessionId ||
|-
| 12 || GetAccountId ||
|-
| 13 || GetLinkedNintendoAccountId ||
|-
| 14 || GetNickname ||
|-
| 15 || GetProfileImage ||
|-
| 21 || LoadIdTokenCache ||
|-
| 100 || RegisterUser ([1.0.0-3.0.2] RegisterAsync) || [1.0.0-3.0.2] Used to return an [[#IAsyncContext]].
|-
| 101 || RegisterUserWithUid ([1.0.0-3.0.2] RegisterWithUidAsync) || [1.0.0-3.0.2] Used to return an [[#IAsyncContext]].
|-
| 102 || [4.0.0+] RegisterNetworkServiceAccountAsync || Returns an [[#IAsyncContext]].
|-
| 103 || [4.0.0+] RegisterNetworkServiceAccountWithUidAsync || Returns an [[#IAsyncContext]].
|-
| 110 || SetSystemProgramIdentification ||
|-
| 111 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|}
== IAdministrator ==
This is "nn::account::baas::IAdministrator".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
|-
| 4 || [19.0.0+] LoadIdTokenCache ||
|-
| 100 || SetSystemProgramIdentification ||
|-
| 101 || [7.0.0+] RefreshNotificationTokenAsync
|-
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
|-
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
|-
| 112 || [4.0.0-6.2.0] InvalidateTokenCache ||
|-
| 113 || [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
|-
| 120 || GetNintendoAccountId ||
|-
| 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint ||
|-
| 130 || GetNintendoAccountUserResourceCache ||
|-
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
|-
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 133 || [9.0.0+] GetNintendoAccountVerificationUrlCache ||
|-
| 134 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync ||
|-
| 135 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
|-
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
|-
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||
|-
| 141 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsync ||
|-
| 142 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed ||
|-
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
|-
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
|-
| 180 || [18.0.0-19.0.1] GetRequestForNintendoAccountReauthentication ||
|-
| 181 || [20.0.0+] CreateProcedureToReauthenticateNintendoAccount ||
|-
| 182 || [20.0.0+] ResumeProcedureToReauthenticateNintendoAccount ||
|-
| 200 || IsRegistered ||
|-
| 201 || RegisterAsync || Returns an [[#IAsyncContext]].
|-
| 202 || UnregisterAsync || Returns an [[#IAsyncContext]].
|-
| 203 || DeleteRegistrationInfoLocally ||
|-
| 204 || [19.0.0-19.0.1] UnregisterDeviceAsync ||
|-
| 220 || SynchronizeProfileAsync || Returns an [[#IAsyncContext]].
|-
| 221 || UploadProfileAsync || Returns an [[#IAsyncContext]].
|-
| 222 || SynchronizeProfileAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 223 || [19.0.0+] DownloadProfileAsync ||
|-
| 250 || IsLinkedWithNintendoAccount ||
|-
| 251 || CreateProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
|-
| 252 || ResumeProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
|-
| 255 || CreateProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 256 || ResumeProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 260 || [3.0.0+] CreateProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 261 || [3.0.0+] ResumeProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 280 || ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 290 || [8.0.0+] GetRequestForNintendoAccountUserResourceView ||
|-
| 300 || [6.0.0+] TryRecoverNintendoAccountUserStateAsync || Returns an [[#IAsyncContext]].
|-
| 400 || [6.1.0+] IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay || Takes a total of 0x8-bytes of input, returns an output u8.
|-
| 401 || [6.1.0+] RefreshServiceEntryRequirementCacheForOnlinePlayAsync || Takes a total of 0x8-bytes of input, returns an [[#IAsyncContext]].
|-
| 900 || [9.0.0+] GetAuthenticationInfoForWin ||
|-
| 901 || [9.0.0+] ImportAsyncForWin ||
|-
| 997 || DebugUnlinkNintendoAccountAsync || Returns an [[#IAsyncContext]].
|-
| 998 || DebugSetAvailabilityErrorDetail ||
|}
== IAuthorizationRequest ==
This is "nn::account::nas::IAuthorizationRequest".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSessionId ||
|-
| 10 || InvokeWithoutInteractionAsync || Returns an [[#IAsyncContext]].
|-
| 19 || IsAuthorized ||
|-
| 20 || GetAuthorizationCode ||
|-
| 21 || GetIdToken ||
|-
| 22 || GetState ||
|}
== IOAuthProcedure ==
This is "nn::account::http::IOAuthProcedure".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|}
== IOAuthProcedureForExternalNsa ==
This is "nn::account::nas::IOAuthProcedureForExternalNsa".
Added with [3.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetAccountId ||
|-
| 101 || GetLinkedNintendoAccountId ||
|-
| 102 || GetNickname ||
|-
| 103 || GetProfileImage ||
|-
| 104 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
|-
| 1000 || [19.0.0+] GetRequestForMoving ||
|}
=== GetProfileLargeImage ===
Takes a type-0x6 output buffer, returns an output u32.
As of 18.0.0 this is stubbed, this eventually returns Result 0x167C.
== IOAuthProcedureForNintendoAccountLinkage ==
This is "nn::account::nas::IOAuthProcedureForNintendoAccountLinkage".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetRequestWithTheme ||
|-
| 101 || IsNetworkServiceAccountReplaced ||
|-
| [2.0.0-5.1.0] 199 || GetUrlForIntroductionOfExtraMembership ||
|}
== INotifier ==
This is "nn::account::detail::INotifier".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSystemEvent
|}
== IProfile ==
This is "nn::account::profile::IProfile".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || [[#Get]]
|-
| 1 || [[#GetBase]]
|-
| 10 || [[#GetImageSize]]
|-
| 11 || [[#LoadImage]]
|}
=== Get ===
Takes an output type-0x1A buffer for [[#UserData]], returns an output [[#ProfileBase]].
=== GetBase ===
No input, returns an output [[#ProfileBase]].
=== GetImageSize ===
No input, returns an output u32 for the size of the image buffer.
=== LoadImage ===
Takes an output type-0x6 buffer, returns the same output u32 as [[#GetImageSize]].
The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.
== IProfileEditor ==
This is "nn::account::profile::IProfileEditor".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || [[#Get]]
|-
| 1 || [[#GetBase]]
|-
| 10 || [[#GetImageSize]]
|-
| 11 || [[#LoadImage]]
|-
| 100 || [[#Store]]
|-
| 101 || [[#StoreWithImage]]
|}
=== Store ===
Takes a [[#ProfileBase]] and an input type-0x19 buffer for [[#UserData]].
=== StoreWithImage ===
Takes a [[#ProfileBase]], an input type-0x19 buffer for [[#UserData]], and an input type-0x5 buffer.
== IAsyncContext ==
This is "nn::account::detail::IAsyncContext".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSystemEvent
|-
| 1 || Cancel
|-
| 2 || HasDone
|-
| 3 || GetResult
|}
== ISessionObject ==
This is "nn::account::detail::ISessionObject".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 999 || Dummy
|}
= acc:u0 =
This is "nn::account::IAccountServiceForApplication".
This was moved to [[NS_Services|ns]] with [13.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Takes an input userID, returns an [[#IProfile]].
|-
| 6 || [3.0.0+] GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
|-
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || [[#InitializeApplicationInfoV0]] ||
|-
| 101 || GetBaasAccountManagerForApplication || Takes an input userID, returns an [[#IManagerForApplication]].
|-
| 102 || AuthenticateApplicationAsync || Returns an [[#IAsyncContext]].
|-
| 103 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 120 || CreateGuestLoginRequest || Returns an [[#IGuestLoginRequest]].
|-
| 130 || [5.0.0+] LoadOpenContext ||
|-
| 131 || [6.0.0+] ListOpenContextStoredUsers ||
|-
| 140 || [6.0.0+] [[#InitializeApplicationInfo]] ||
|-
| 141 || [6.0.0+] ListQualifiedUsers ||
|-
| 150 || [6.0.0+] IsUserAccountSwitchLocked ||
|}
InitializeApplicationInfo* is used by the user-process during service init.
== InitializeApplicationInfoV0 ==
Takes a PID and an input u64 pid_placeholder, no output.
== InitializeApplicationInfo ==
Takes a PID and an input u64 pid_placeholder, no output.
== IGuestLoginRequest ==
This is "nn::account::baas::IGuestLoginRequest".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSessionId
|-
| [1.0.0-2.3.0] 11 ||
|-
| 12 || GetAccountId
|-
| 13 || GetLinkedNintendoAccountId
|-
| 14 || GetNickname
|-
| 15 || GetProfileImage
|-
| 21 || [3.0.0+] LoadIdTokenCache
|}
== IManagerForApplication ==
This is "nn::account::baas::IManagerForApplication".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
|-
| 4 || [19.0.0+] LoadIdTokenCache ||
|-
| 130 || GetNintendoAccountUserResourceCacheForApplication ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || [5.0.0+] StoreOpenContext ||
|-
| 170 || [6.0.0+] LoadNetworkServiceLicenseKindAsync || No input, returns an [[#IAsyncNetworkServiceLicenseKindContext]].
|}
== IAsyncNetworkServiceLicenseKindContext ==
This is "nn::account::detail::IAsyncNetworkServiceLicenseKindContext".
This was added with [6.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSystemEvent ||
|-
| 1 || Cancel ||
|-
| 2 || HasDone ||
|-
| 3 || GetResult ||
|-
| 100 || GetNetworkServiceLicenseKind ||
|}
= acc:u1 =
= acc:u1 =
This is "nn::account::IAccountServiceForSystemService".
This was moved to [[NS_Services|ns]] with [13.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Returns an [[#IProfile]].
|-
| 6 || [3.0.0+] GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 60 || [5.0.0-5.1.0] ListOpenContextStoredUsers ||
|-
| 99 || [6.0.0+] DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
|-
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
|-
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
|-
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
|-
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
|-
| 105 || [4.0.0+] CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 106 || [9.0.0+] GetProfileSyncNotifier ||
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 112 || LoadSaveDataThumbnail ||
|-
| 113 || [5.0.0+] GetSaveDataThumbnailExistence ||
|-
| 120 || [10.0.0+] ListOpenUsersInApplication ||
|-
| 130 || [6.0.0+] ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
|-
| 140 || [6.0.0+] ListQualifiedUsers ||
|-
| 150 || [10.0.0-10.2.0] AuthenticateApplicationAsync ||
|-
| 151 || [12.0.0+] EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
|-
| 152 || [12.0.0+] LoadSignedDeviceIdentifierCacheForNintendoAccount ||
|-
| 190 || [1.0.0-9.2.0] GetUserLastOpenedApplication ||
|-
| 191 || [7.0.0-19.0.1] UpdateNotificationReceiverInfo ([5.0.0-5.1.0] ActivateOpenContextHolder) ||
|-
| 401 || [18.0.0+] GetPinCodeLength ||
|-
| 402 || [18.0.0-19.0.1] GetPinCode ||
|-
| 403 || [20.0.0+] GetPinCodeParity ||
|-
| 404 || [20.0.0+] VerifyPinCode ||
|-
| 405 || [20.0.0+] IsPinCodeVerificationForbidden ||
|-
| 997 || [3.0.0+] DebugInvalidateTokenCacheForUser ||
|-
| 998 || DebugSetUserStateClose ||
|-
| 999 || DebugSetUserStateOpen ||
|}
[10.0.0+] DebugSetUserStateClose/DebugSetUserStateOpen now takes an additional 8-bytes of input.
== IOAuthProcedureForUserRegistration ==
This is "nn::account::nas::IOAuthProcedureForUserRegistration".
This was added with [8.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || No input, returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Takes a type-0x9 input buffer, returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetAccountId ||
|-
| 101 || GetLinkedNintendoAccountId ||
|-
| 102 || GetNickname ||
|-
| 103 || GetProfileImage ||
|-
| 104 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
|-
| 110 || RegisterUserAsync || No input, returns an [[#IAsyncContext]].
|-
| 111 || GetUid ||
|-
| 200 || [17.0.0+] ApplyResponseForUserCreationAsync ||
|-
| 205 || [17.0.0+] SuspendAfterApplyResponse ||
|-
| 210 || [17.0.0+] IsProfileAvailable ||
|-
| 220 || [17.0.0+] RegisterUserAsyncWithoutProfile ||
|-
| 221 || [17.0.0+] RegisterUserWithProfileAsync ||
|-
| 230 || [18.0.0+] RegisterUserWithLargeImageProfileAsync ||
|}
= acc:aa =
This is "nn::account::IBaasAccessTokenAccessor".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || EnsureCacheAsync || Returns an [[#IAsyncContext]].
|-
| 1 || LoadCache ||
|-
| 2 || GetDeviceAccountId ||
|-
| 50 || [1.0.0-6.2.0] RegisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
|-
| 51 || [1.0.0-6.2.0] UnregisterNotificationTokenAsync || Returns an [[#IAsyncContext]].
|}
= dauth:0 =
This is "nn::dauth::detail::IService".
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || EnsureAuthenticationTokenCacheAsync ([5.0.0-5.1.0] GeneratePostData)
|-
| 1 || [6.0.0+] LoadAuthenticationTokenCache
|-
| 2 || [6.0.0+] InvalidateAuthenticationTokenCache
|-
| 3 || [16.0.0+] IsDeviceAuthenticationTokenCacheAvailable
|-
| 10 || [6.0.0+] EnsureEdgeTokenCacheAsync
|-
| 11 || [6.0.0+] LoadEdgeTokenCache
|-
| 12 || [6.0.0+] InvalidateEdgeTokenCache
|-
| 13 || [16.0.0+] IsEdgeTokenCacheAvailable
|-
| 20 || [11.0.0+] EnsureApplicationAuthenticationCacheAsync
|-
| 21 || [11.0.0+] LoadApplicationAuthenticationTokenCache
|-
| 22 || [11.0.0+] LoadApplicationNetworkServiceClientConfigCache
|-
| 23 || [11.0.0+] IsApplicationAuthenticationCacheAvailable
|-
| 24 || [11.0.0+] InvalidateApplicationAuthenticationCache
|-
| 1000 || [15.0.0+] GetInactiveElicenseUsedEvent
|-
| 9000 || [15.0.0+] ImportVirtualClientCertificate
|-
| 9010 || [15.0.0+] DeleteVirtualClientCertificate
|}
[10.0.0+] EnsureEdgeTokenCacheAsync now takes an additional 8-bytes of input.
== IAsyncResult ==
This is "nn::dauth::detail::IAsyncResult".
This was added with [6.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetResult
|-
| 1 || Cancel
|-
| 2 || IsAvailable
|-
| 3 || GetSystemEvent
|}
= acc:e =
This is "nn::account::IAccountEntityServiceForAccountPolicy".
This was added with [13.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Returns an [[#IProfile]].
|-
| 6 || GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
|-
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
|-
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
|-
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
|-
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
|-
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 106 || GetProfileSyncNotifier ||
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 112 || LoadSaveDataThumbnail ||
|-
| 113 || GetSaveDataThumbnailExistence ||
|-
| 120 || ListOpenUsersInApplication ||
|-
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
|-
| 140 || ListQualifiedUsers ||
|-
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
|-
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
|-
| 170 || GetNasOp2MembershipStateChangeNotifier ||
|-
| 191 || [13.0.0-19.0.1] UpdateNotificationReceiverInfo ||
|-
| 200 || BeginUserRegistration ||
|-
| 201 || CompleteUserRegistration ||
|-
| 202 || CancelUserRegistration ||
|-
| 203 || DeleteUser ||
|-
| 204 || SetUserPosition ||
|-
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
|-
| 206 || CompleteUserRegistrationForcibly ||
|-
| 210 || CreateFloatingRegistrationRequest || Returns an [[#IFloatingRegistrationRequest]].
|-
| 211 || CreateProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x4-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
|-
| 212 || ResumeProcedureToRegisterUserWithNintendoAccount || Takes a total of 0x14-bytes of input and a handle, returns an [[#IOAuthProcedureForUserRegistration]].
|-
| 213 || [17.0.0+] CreateProcedureToCreateUserWithNintendoAccount ||
|-
| 214 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccount ||
|-
| 215 || [17.0.0+] ResumeProcedureToCreateUserWithNintendoAccountAfterApplyResponse ||
|-
| 230 || AuthenticateServiceAsync || Returns an [[#IAsyncContext]].
|-
| 250 || GetBaasAccountAdministrator || Returns an [[#IAdministrator]].
|-
| 251 || [20.0.0+] SynchronizeNetworkServiceAccountsSnapshotAsync ||
|-
| 290 || ProxyProcedureForGuestLoginWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
|-
| 291 || ProxyProcedureForFloatingRegistrationWithNintendoAccount || Returns an [[#IOAuthProcedureForExternalNsa]].
|-
| 292 || [20.0.0+] ProxyProcedureForDeviceMigrationAuthenticatingOperatingUser ||
|-
| 293 || [20.0.0+] ProxyProcedureForDeviceMigrationDownload ||
|-
| 299 || SuspendBackgroundDaemon || Returns an [[#ISessionObject]].
|-
| 350 || [20.0.0+] CreateDeviceMigrationUserExportRequest ||
|-
| 351 || [20.0.0+] UploadNasCredential ||
|-
| 352 || [20.0.0+] CreateDeviceMigrationUserImportRequest ||
|-
| 353 || [20.0.0+] DeleteUserMigrationSaveData ||
|-
| 400 || [18.0.0+] SetPinCode ||
|-
| 401 || [18.0.0+] GetPinCodeLength ||
|-
| 402 || [18.0.0-19.0.1] GetPinCode ||
|-
| 403 || [20.0.0+] GetPinCodeParity ||
|-
| 404 || [20.0.0+] VerifyPinCode ||
|-
| 405 || [20.0.0+] IsPinCodeVerificationForbidden ||
|-
| 410 || [18.0.0+] GetPinCodeErrorCount ||
|-
| 411 || [18.0.0-19.0.1] ResetPinCodeErrorCount ||
|-
| 412 || [18.0.0-19.0.1] IncrementPinCodeErrorCount ||
|-
| 413 || [20.0.0+] SetPinCodeErrorCount ||
|-
| 420 || [19.0.0+] SetStartPenaltyTime ||
|-
| 421 || [19.0.0+] GetStartPenaltyTime ||
|-
| 900 || SetUserUnqualifiedForDebug ||
|-
| 901 || UnsetUserUnqualifiedForDebug ||
|-
| 902 || ListUsersUnqualifiedForDebug ||
|-
| 910 || [16.0.0+] RefreshFirmwareSettingsForDebug ||
|-
| 997 || DebugInvalidateTokenCacheForUser ||
|-
| 998 || DebugSetUserStateClose ||
|-
| 999 || DebugSetUserStateOpen ||
|-
| 1000 || CreateIAccountEntityServiceForApplication || Returns an [[#IAccountEntityServiceForApplication]].
|-
| 1100 || CreateIUserStateManager || Returns an [[#IUserStateManager]].
|-
| 10050 || IsUserRegistrationRequestPermittedForAccountPolicy ||
|-
| 10105 || CheckNetworkServiceAvailabilityAsyncForAccountPolicy ||
|}
== IProfile ==
This is "nn::account::profile::IProfile".
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetNumActiveUsers
| 0 || [[#Get]]
|-
|-
| 1 || DoesUserExist
| 1 || [[#GetBase]]
|-
|-
| 2 || GetOpenUserIDs
| 10 || [[#GetImageSize]]
|-
|-
| 3 || get_unk_key
| 11 || [[#LoadImage]]
|-
|-
| 4 || GetActiveUser
| 20 || [18.0.0+] GetLargeImageSize
|-
|-
| 5 || RegisterInterface_Profile
| 21 || [18.0.0+] LoadLargeImage
|-
|-
| 50 || GetSelectedPlayer?
| 30 || [18.0.0+] GetImageId
|-
|-
| 51 || GetSelectedPlayer2?
| 40 || [19.0.0+] GetStableUserId
|}
 
=== Get ===
Takes an output type-0x1A buffer for [[#UserData]], returns an output [[#ProfileBase]].
 
=== GetBase ===
No input, returns an output [[#ProfileBase]].
 
=== GetImageSize ===
No input, returns an output u32 for the size of the image buffer.
 
=== LoadImage ===
Takes an output type-0x6 buffer, returns the same output u32 as [[#GetImageSize]].
 
The output buffer contains the JPEG profile image icon. This is valid for both Miis and character icons.
 
== IProfileEditor ==
This is "nn::account::profile::IProfileEditor".
 
{| class="wikitable" border="1"
|-
|-
| 100 || RegisterInterface_Notifier
! Cmd || Name
|-
|-
| 101 || RegisterInterface2_Notifier
| 0 || [[#Get]]
|-
|-
| 102 || RegisterInterface_Baas
| 1 || [[#GetBase]]
|-
|-
| 103 || RegisterInterface3_Notifier
| 10 || [[#GetImageSize]]
|-
|-
| 104 || RegisterInterface4_Notifier
| 11 || [[#LoadImage]]
|-
|-
| 110 ||
| 20 || [18.0.0+] GetLargeImageSize
|-
| 21 || [18.0.0+] LoadLargeImage
|-
| 30 || [18.0.0+] GetImageId
|-
| 40 || [19.0.0+] GetStableUserId
|-
| 100 || [[#Store]]
|-
| 101 || [[#StoreWithImage]]
|-
| 110 || [18.0.0+] StoreWithLargeImage
|}
 
=== Store ===
Takes a [[#ProfileBase]] and an input type-0x19 buffer for [[#UserData]].
 
=== StoreWithImage ===
Takes a [[#ProfileBase]], an input type-0x19 buffer for [[#UserData]], and an input type-0x5 buffer.
 
== IAsyncContext ==
This is "nn::account::detail::IAsyncContext".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSystemEvent
|-
| 1 || Cancel
|-
| 2 || HasDone
|-
| 3 || GetResult
|}
 
== ISessionObject ==
This is "nn::account::detail::ISessionObject".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 999 || Dummy
|}
 
== INotifier ==
This is "nn::account::detail::INotifier".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSystemEvent
|}
 
== IManagerForSystemService ==
This is "nn::account::baas::IManagerForSystemService".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
|-
| 4 || [19.0.0+] LoadIdTokenCache ||
|-
| 100 || SetSystemProgramIdentification ||
|-
| 101 || RefreshNotificationTokenAsync ||
|-
| 110 || GetServiceEntryRequirementCacheForLogin ||
|-
| 111 || InvalidateServiceEntryRequirementCache ||
|-
| 113 || GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
|-
| 120 || GetNintendoAccountId ||
|-
| 121 || CalculateNintendoAccountAuthenticationFingerprint ||
|-
| 130 || GetNintendoAccountUserResourceCache ||
|-
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
|-
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 133 || GetNintendoAccountVerificationUrlCache ||
|-
| 134 || RefreshNintendoAccountVerificationUrlCacheAsync ||
|-
| 135 || RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
|-
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
|-
| 140 || GetNetworkServiceLicenseCache ||
|-
| 141 || RefreshNetworkServiceLicenseCacheAsync || Returns an [[#IAsyncContext]].
|-
| 142 || RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
|-
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
|-
| 180 || [18.0.0-19.0.1] GetRequestForNintendoAccountReauthentication ||
|-
| 181 || [20.0.0+] CreateProcedureToReauthenticateNintendoAccount ||
|-
| 182 || [20.0.0+] ResumeProcedureToReauthenticateNintendoAccount ||
|}
 
== IFloatingRegistrationRequest ==
This is "nn::account::baas::IFloatingRegistrationRequest".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSessionId ||
|-
| 12 || GetAccountId ||
|-
| 13 || GetLinkedNintendoAccountId ||
|-
| 14 || GetNickname ||
|-
| 15 || GetProfileImage ||
|-
| 16 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]] ||
|-
| 21 || LoadIdTokenCache ||
|-
| 100 || RegisterUser ||
|-
| 101 || RegisterUserWithUid ||
|-
| 102 || RegisterNetworkServiceAccountAsync || Returns an [[#IAsyncContext]].
|-
| 103 || RegisterNetworkServiceAccountWithUidAsync || Returns an [[#IAsyncContext]].
|-
| 110 || SetSystemProgramIdentification ||
|-
| 111 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|}
 
== IAdministrator ==
This is "nn::account::baas::IAdministrator".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || [19.0.0+] LoadIdTokenCacheDeprecated ([1.0.0-18.1.0] LoadIdTokenCache) ||
|-
| 4 || [19.0.0+] LoadIdTokenCache ||
|-
| 100 || SetSystemProgramIdentification ||
|-
| 101 || [7.0.0+] RefreshNotificationTokenAsync
|-
| 110 || [4.0.0+] GetServiceEntryRequirementCache ||
|-
| 111 || [4.0.0+] InvalidateServiceEntryRequirementCache ||
|-
| 112 || [4.0.0-6.2.0] InvalidateTokenCache ||
|-
| 113 || [6.1.0+] GetServiceEntryRequirementCacheForOnlinePlay || Takes a total of 0x8-bytes of input, returns a total of 0x4-bytes of output.
|-
| 120 || GetNintendoAccountId ||
|-
| 121 || [9.0.0+] CalculateNintendoAccountAuthenticationFingerprint ||
|-
| 130 || GetNintendoAccountUserResourceCache ||
|-
| 131 || RefreshNintendoAccountUserResourceCacheAsync || Returns an [[#IAsyncContext]].
|-
| 132 || RefreshNintendoAccountUserResourceCacheAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 133 || [9.0.0+] GetNintendoAccountVerificationUrlCache ||
|-
| 134 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsync ||
|-
| 135 || [9.0.0+] RefreshNintendoAccountVerificationUrlCacheAsyncIfSecondsElapsed ||
|-
| 136 || [19.0.0+] GetNintendoAccountUserResourceCache ||
|-
| 140 || [5.0.0+] GetNetworkServiceLicenseCache ||
|-
| 141 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsync ||
|-
| 142 || [5.0.0+] RefreshNetworkServiceLicenseCacheAsyncIfSecondsElapsed ||
|-
| 143 || [15.0.0+] GetNetworkServiceLicenseCacheEx ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || [15.0.0+] RequiresUpdateNetworkServiceAccountIdTokenCache ||
|-
| 161 || [16.0.0+] RequireReauthenticationOfNetworkServiceAccount ||
|-
| 180 || [18.0.0-19.0.1] GetRequestForNintendoAccountReauthentication ||
|-
| 181 || [20.0.0+] CreateProcedureToReauthenticateNintendoAccount ||
|-
| 182 || [20.0.0+] ResumeProcedureToReauthenticateNintendoAccount ||
|-
| 200 || IsRegistered ||
|-
| 201 || RegisterAsync || Returns an [[#IAsyncContext]].
|-
| 202 || UnregisterAsync || Returns an [[#IAsyncContext]].
|-
| 203 || DeleteRegistrationInfoLocally ||
|-
| 204 || [19.0.0-19.0.1] UnregisterDeviceAsync ||
|-
| 220 || SynchronizeProfileAsync || Returns an [[#IAsyncContext]].
|-
| 221 || UploadProfileAsync || Returns an [[#IAsyncContext]].
|-
| 222 || SynchronizeProfileAsyncIfSecondsElapsed || Returns an [[#IAsyncContext]].
|-
| 223 || [19.0.0+] DownloadProfileAsync ||
|-
| 250 || IsLinkedWithNintendoAccount ||
|-
| 251 || CreateProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
|-
| 252 || ResumeProcedureToLinkWithNintendoAccount || Returns an [[#IOAuthProcedureForNintendoAccountLinkage]].
|-
| 255 || CreateProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 256 || ResumeProcedureToUpdateLinkageStateOfNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 260 || [3.0.0+] CreateProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 261 || [3.0.0+] ResumeProcedureToLinkNnidWithNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 280 || ProxyProcedureToAcquireApplicationAuthorizationForNintendoAccount || Returns an [[#IOAuthProcedure]].
|-
| 290 || [8.0.0+] GetRequestForNintendoAccountUserResourceView ||
|-
| 300 || [6.0.0+] TryRecoverNintendoAccountUserStateAsync || Returns an [[#IAsyncContext]].
|-
| 400 || [6.1.0+] IsServiceEntryRequirementCacheRefreshRequiredForOnlinePlay || Takes a total of 0x8-bytes of input, returns an output u8.
|-
| 401 || [6.1.0+] RefreshServiceEntryRequirementCacheForOnlinePlayAsync || Takes a total of 0x8-bytes of input, returns an [[#IAsyncContext]].
|-
| 900 || [9.0.0+] GetAuthenticationInfoForWin ||
|-
| 901 || [9.0.0+] ImportAsyncForWin ||
|-
| 997 || DebugUnlinkNintendoAccountAsync || Returns an [[#IAsyncContext]].
|-
| 998 || DebugSetAvailabilityErrorDetail ||
|}
 
== IAuthorizationRequest ==
This is "nn::account::nas::IAuthorizationRequest".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSessionId ||
|-
| 10 || InvokeWithoutInteractionAsync || Returns an [[#IAsyncContext]].
|-
| 19 || IsAuthorized ||
|-
| 20 || GetAuthorizationCode ||
|-
| 21 || GetIdToken ||
|-
| 22 || GetState ||
|}
 
== IOAuthProcedure ==
This is "nn::account::http::IOAuthProcedure".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|}
 
== IOAuthProcedureForExternalNsa ==
This is "nn::account::nas::IOAuthProcedureForExternalNsa".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetAccountId ||
|-
| 101 || GetLinkedNintendoAccountId ||
|-
| 102 || GetNickname ||
|-
| 103 || GetProfileImage ||
|}
 
== IOAuthProcedureForNintendoAccountLinkage ==
This is "nn::account::nas::IOAuthProcedureForNintendoAccountLinkage".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || Returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetRequestWithTheme ||
|-
| 101 || IsNetworkServiceAccountReplaced ||
|-
| 200 || [16.0.0+] ApplyAsyncWithAuthorizedToken ||
|}
 
== IOAuthProcedureForUserRegistration ==
This is "nn::account::nas::IOAuthProcedureForUserRegistration".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || PrepareAsync || No input, returns an [[#IAsyncContext]].
|-
| 1 || GetRequest ||
|-
| 2 || ApplyResponse ||
|-
| 3 || ApplyResponseAsync || Takes a type-0x9 input buffer, returns an [[#IAsyncContext]].
|-
| 10 || Suspend ||
|-
| 100 || GetAccountId ||
|-
| 101 || GetLinkedNintendoAccountId ||
|-
| 102 || GetNickname ||
|-
| 103 || GetProfileImage ||
|-
| 110 || RegisterUserAsync || No input, returns an [[#IAsyncContext]].
|-
| 111 || GetUid ||
|}
 
== IAccountEntityServiceForApplication ==
This is "nn::account::IAccountEntityServiceForApplication".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Takes an input userID, returns an [[#IProfile]].
|-
| 6 || GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || [[#InitializeApplicationInfoV0]] ||
|-
| 101 || GetBaasAccountManagerForApplication || Takes an input userID, returns an [[#IManagerForApplication]].
|-
| 102 || AuthenticateApplicationAsync || Returns an [[#IAsyncContext]].
|-
| 103 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 120 || CreateGuestLoginRequest || Returns an [[#IGuestLoginRequest]].
|-
| 130 || LoadOpenContext ||
|-
| 131 || ListOpenContextStoredUsers ||
|-
| 140 || [[#InitializeApplicationInfoV1]] ||
|-
| 141 || ListQualifiedUsers ||
|-
| 150 || IsUserAccountSwitchLocked ||
|-
| 160 || InitializeApplicationInfoV2 ||
|-
| 10050 || IsUserRegistrationRequestPermittedForAccountPolicy ||
|-
| 10100 || InitializeApplicationInfoV0ForAccountPolicy ||
|-
| 10140 || InitializeApplicationInfoV1ForAccountPolicy ||
|-
| 10160 || InitializeApplicationInfoV2ForAccountPolicy ||
|}
 
InitializeApplicationInfo* is used by the user-process during service init.
 
=== IsUserRegistrationRequestPermitted ===
Takes a PID, an input u64 pid_reserved, and returns an output u8 bool.
 
=== TrySelectUserWithoutInteraction ===
Takes an input u8 bool isNetworkServiceAccountRequired, returns an output Uid.
 
=== InitializeApplicationInfoV0 ===
Takes a PID and an input u64 pid_placeholder, no output.
 
=== InitializeApplicationInfoV1 ===
Takes a PID and an input u64 pid_placeholder, no output.
 
=== IGuestLoginRequest ===
This is "nn::account::baas::IGuestLoginRequest".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetSessionId
|-
| 12 || GetAccountId
|-
| 13 || GetLinkedNintendoAccountId
|-
| 14 || GetNickname
|-
| 15 || GetProfileImage
|-
| 16 || [18.0.0+] [[#GetProfileLargeImage|GetProfileLargeImage]]
|-
| 21 || LoadIdTokenCache
|}
 
=== IManagerForApplication ===
This is "nn::account::baas::IManagerForApplication".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || CheckAvailability ||
|-
| 1 || GetAccountId ||
|-
| 2 || EnsureIdTokenCacheAsync || Returns an [[#IAsyncContext]].
|-
| 3 || LoadIdTokenCache ||
|-
| 130 || GetNintendoAccountUserResourceCacheForApplication ||
|-
| 150 || CreateAuthorizationRequest || Returns an [[#IAuthorizationRequest]].
|-
| 160 || StoreOpenContext ||
|-
| 170 || EnsureIdTokenCacheForOnlinePlayAsync || No input, returns an [[#IAsyncContextForLoginForOnlinePlay]].
|}
 
==== IAsyncContextForLoginForOnlinePlay ====
This is "nn::account::baas::IAsyncContextForLoginForOnlinePlay".
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetSystemEvent ||
|-
| 1 || Cancel ||
|-
| 2 || HasDone ||
|-
| 3 || GetResult ||
|-
| 100 || GetNetworkServiceLicenseInfoForOnlinePlay ||
|}
 
== IUserStateManager ==
This is "nn::account::detail::IUserStateManager".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 100 || EnableQualificationLimitation
|-
| 101 || DisableQualificationLimitation
|-
| 110 || SelectQualifiedUsers
|-
| 900 || [14.0.0+] SetUserUnqualifiedForDebug
|-
| 901 || [14.0.0+] UnsetUserUnqualifiedForDebug
|-
| 902 || [14.0.0+] ListUsersUnqualifiedForDebug
|}
 
= acc:e:u1 =
This is "nn::account::IAccountServiceForSystemService".
 
This was added with [13.0.0+].
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Returns an [[#IProfile]].
|-
| 6 || GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
|-
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
|-
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
|-
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
|-
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
|-
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 106 || GetProfileSyncNotifier ||
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 112 || LoadSaveDataThumbnail ||
|-
| 113 || GetSaveDataThumbnailExistence ||
|-
| 120 || ListOpenUsersInApplication ||
|-
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
|-
| 140 || ListQualifiedUsers ||
|-
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
|-
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
|-
| 170 || GetNasOp2MembershipStateChangeNotifier ||
|-
| 191 || UpdateNotificationReceiverInfo ||
|-
| 997 || DebugInvalidateTokenCacheForUser ||
|-
| 998 || DebugSetUserStateClose ||
|-
| 999 || DebugSetUserStateOpen ||
|}
 
= acc:e:u2 =
This is "nn::account::IAccountServiceForSystemServiceWithProfileEditor".
 
This was added with [13.0.0+].
 
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || GetUserCount ||
|-
| 1 || GetUserExistence ||
|-
| 2 || ListAllUsers ||
|-
| 3 || ListOpenUsers ||
|-
| 4 || GetLastOpenedUser ||
|-
| 5 || GetProfile || Returns an [[#IProfile]].
|-
| 6 || GetProfileDigest ||
|-
| 50 || [[#IsUserRegistrationRequestPermitted]] ||
|-
| 51 || TrySelectUserWithoutInteractionDeprecated ([1.0.0-18.1.0] [[#TrySelectUserWithoutInteraction]]) ||
|-
| 52 || [19.0.0+] TrySelectUserWithoutInteraction ||
|-
| 99 || DebugActivateOpenContextRetention || No input, returns an [[#ISessionObject]].
|-
| 100 || GetUserRegistrationNotifier || Returns an [[#INotifier]].
|-
| 101 || GetUserStateChangeNotifier || Returns an [[#INotifier]].
|-
| 102 || GetBaasAccountManagerForSystemService || Returns an [[#IManagerForSystemService]].
|-
| 103 || GetBaasUserAvailabilityChangeNotifier || Returns an [[#INotifier]].
|-
| 104 || GetProfileUpdateNotifier || Returns an [[#INotifier]].
|-
| 105 || CheckNetworkServiceAvailabilityAsync || Returns an [[#IAsyncContext]].
|-
| 106 || GetProfileSyncNotifier ||
|-
| 110 || StoreSaveDataThumbnail ||
|-
| 111 || ClearSaveDataThumbnail ||
|-
| 112 || LoadSaveDataThumbnail ||
|-
| 113 || GetSaveDataThumbnailExistence ||
|-
| 120 || ListOpenUsersInApplication ||
|-
| 130 || ActivateOpenContextRetention || Takes a total of 0x8-bytes of input, returns an [[#ISessionObject]].
|-
| 140 || ListQualifiedUsers ||
|-
| 151 || EnsureSignedDeviceIdentifierCacheForNintendoAccountAsync ||
|-
| 152 || LoadSignedDeviceIdentifierCacheForNintendoAccount ||
|-
| 170 || GetNasOp2MembershipStateChangeNotifier ||
|-
| 191 || [13.0.0-19.0.1] UpdateNotificationReceiverInfo ||
|-
| 205 || GetProfileEditor || Takes an input userID and returns an [[#IProfileEditor]].
|-
| 401 || [18.0.0+] GetPinCodeLength ||
|-
| 402 || [18.0.0-19.0.1] GetPinCode ||
|-
| 403 || [20.0.0+] GetPinCodeParity ||
|-
| 404 || [20.0.0+] VerifyPinCode ||
|-
| 405 || [20.0.0+] IsPinCodeVerificationForbidden ||
|-
| 997 || DebugInvalidateTokenCacheForUser ||
|-
| 998 || DebugSetUserStateClose ||
|-
| 999 || DebugSetUserStateOpen ||
|}
 
= UserData =
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4? || ?
|-
| 0x4 || 0x4? || Icon ID. 0 = Mii, the rest are character icon IDs.
|-
| 0x8 || 0x1? || Profile icon background color ID
|-
| 0x9 || 0x7 || ?
|-
| 0x10 || 0x10 || Some ID related to the Mii? All zeros when a character icon is used.
|-
| 0x20 || 0x60 || Usually zeros?
|}
 
This is a 0x80-byte struct.
 
= ProfileBase =
{| class="wikitable" border="1"
|-
|-
| 111 ||
! Offset || Size || Description
|-
|-
| 112 ||
| 0x0 || 0x10 || userID
|-
|-
| 190 ||
| 0x10 || 0x8 || POSIX UTC timestamp, for last account edit.
|-
|-
| 998 ||
| 0x18 || 0x20 || UTF-8 Nickname. Official sw uses strncpy to copy this into another struct (<code>nn::account::Nickname</code>), with a NUL-byte written after the copied data.
|-
|-
| 999 ||
|}
|}
This is a 0x38-byte struct.
= Uid =
This is "nn::account::Uid". This is a 0x10-byte struct. This contains 2 u64s for the UserId.
[[Category:Services]]