ACT Services

From 3dbrew
Jump to: navigation, search


The ACT module handles NNID accounts.

ACT service "act:u"[edit]

These commands are common to both act:u and act:a

Command Header Available since system-version Description
0x00010084 Initialize
0x00020040 GetErrorCode
0x0003....  ?
0x00040000?  ?
0x00050082  ?
0x000600C2 GetAccountDataBlock
0x00070082  ?
0x000800C2  ?
0x00090040?  ?
0x000A0040?  ?
0x000B0042 AcquireEulaList
0x000C0082  ?
0x000D0040 GenerateUuid
0x000E0080?  ?
0x000F0040?  ?
0x00100000?  ?
0x00110080?  ?
0x00120102  ?
0x00130002  ?
0x00140382  ?
0x00150002  ?
0x00160082  ?
0x00170084  ?
0x00180044  ?
0x00190044 AcquireMii
0x001A0042  ?
0x001B0084  ?
0x001C0342  ?
0x001D0004  ?

ACT service "act:a"[edit]

These commands are exclusive to act:a

Command Header Available since system-version Description
0x041300C2 UpdateMiiImage
0x041B0142 AgreeEula
0x04210042 UploadMii
0x04230082 ValidateMailAddress


This is the service used by regular applications.

HTTPS Requests[edit]

With each request, ACT-sysmodule specifies request-header "X-Nintendo-Device-Model". This is the only *dedicated* request-header that's contains anything Old3DS/New3DS specific. This was implemented with 9.0.0-X, and presumably 8.1.0-0_New3DS. The value is from a string initialized during ACT-sysmodule startup. The value-string is the codename string for all 5 of the model values from Cfg:GetSystemModel. When the output from GetSystemModel is >=5(switch statement default case), it runs this: "len = snprintf(outstr, outmaxsize, "3DS-%u", model);"

Trusted Root CAs[edit]

ACT module uses a RootCertChain for all HTTPS requests, the only trusted root CA is default CertID 0x3.

New3DS[edit]

Even though ACT-sysmodule uses ptm:s, it doesn't use CheckNew3DS at all.