# ECDeviceInfo

When you need information about the user's device, you call `ECommerceInterface#getDeviceInfo()`. This ranges from storage information to device identifiers.

```javascript
var info = ec.getDeviceInfo();
```

## Properties

| Property Name                    | Discussion                                                                                                                                                              |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `info.isKeyPairConfirmed`        | Always returns true. Related to `ECommerceInterface#generateKeyPair()` and `ECommerceInterface#confirmKeyPair()`, which are not implemented.                            |
| `info.deviceId`                  | Sourced from `ec.cfg`.                                                                                                                                                  |
| `info.serial`                    | The device's serial number, as sourced from `/title/0000001/0000002/data/setting.txt` .                                                                                 |
| `info.accountId`                 | A value returned from the server. TODO: research.                                                                                                                       |
| `info.registrationStatus`        | Set once `ec.checkRegistration()`  is called.                                                                                                                           |
| `info.originalSerial`            | Blank by default. Nintendo can override the Wii's serial number for purposes of the account transferring consoles.                                                      |
| `info.extAccountId`              | Sent by server during `ec.checkRegistration()`.                                                                                                                         |
| `info.region`                    | The device's region, such as `USA`.                                                                                                                                     |
| `info.language`                  | The device's language, such as `en`.                                                                                                                                    |
| `info.country`                   | The device's country, such as `US`. Sourced from the Wii itself.                                                                                                        |
| `info.accountCountry`            | The account's country, such as `US`. Sourced from the response to `ec.checkRegistration()`.                                                                             |
| `info.blockSize`                 | How many bytes a block is. This should always be 16 KiB, or 16,384 bytes.                                                                                               |
| `info.usedBlocks`                | The amount of used blocks on the device.                                                                                                                                |
| `info.totalBlocks`               | The total amount of blocks on the device.                                                                                                                               |
| `info.usedSysBlocks`             | The amount of blocks used up by system data.                                                                                                                            |
| `info.totalSysBlocks`            | The amount of blocks allocated for use to the system.                                                                                                                   |
| `info.usedUserInodes`            | The amount of Inodes available to user data.                                                                                                                            |
| `info.maxUserInodes`             | The cap on Inodes available to the user.                                                                                                                                |
| `info.usedSysInodes`             | The amount of used Inodes by the system.                                                                                                                                |
| `info.maxSysInodes`              | The cap of Inodes available to the system.                                                                                                                              |
| `info.netContentRestrictions`    | Returns an integer, with flags regarding content restriction. TODO: investigate                                                                                         |
| `info.userAge`                   | User age as defined by parental controls. If parental controls are off, defaults to 20.                                                                                 |
| `info.parentalControlFlags`      | Flags regarding restrictions set via parental controls. See also: <https://wiibrew.org/wiki//shared2/sys/SYSCONF#IPL.PC>                                                |
| `info.parentalControlOgn`        | Unknown.                                                                                                                                                                |
| `info.isParentalControlEnabled`  | Boolean on whether parental controls are enabled.                                                                                                                       |
| `info.isNeedTicketSync`          | Boolean value on whether the device needs to sync tickets.                                                                                                              |
| `info.lastTicketSyncTime`        | Timestamp of some sort. A returned value was 1322524844000,                                                                                                             |
| `info.wirelessMACAddr`           | The MAC address for wireless, returned as a string (format XX:XX:XX:XX:XX:XX).                                                                                          |
| `info.bluetoothMACAddr`          | Same format and purpose as above, but for Bluetooth.                                                                                                                    |
| `info.titleId`                   | The app's current title ID. For the Wii Shop Channel, that is "0001000248414241" (as a string).                                                                         |
| `info.freeChannelAppCount`       | The amount of channels currently free the Wii Menu. As each page is 4 columns with 3 rows, and there are 4 pages, there's a potential maximum of 48 channels available. |
| `info.deviceCode`                | Friend code of the device as a string.                                                                                                                                  |
| `info.accountDeviceCode`         | Same as above.                                                                                                                                                          |
| `info.isNeedTicketSyncImportAll` | Whether the device needs to import all tickets from a sync. TBD.                                                                                                        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.oscwii.org/wii-shop-channel/js/ec/ecdeviceinfo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
