Compliance
Compliance is a feature provided by Hive SDK that enables gaming apps to respond to legal regulations, policies, and requirements that must be followed for sustainable business and user protection.
This guide explains the legal, ethical, and administrative regulatory matters supported by Hive SDK Compliance and how to apply them.
User age range verification for app store accountability laws¶
Starting January 1, 2026, several US states including Texas, Utah, and Louisiana will implement laws that require marketplaces to verify user ages and allow only users who have obtained parental (guardian) approval to continue playing games if they are minors. Accordingly, developers distributing apps through marketplaces in these states must use the Age Range API provided by the SDK to verify user age ranges and request parental approval.
Note
This guide is written in compliance with the age verification laws in the relevant US states that will take effect on January 1, 2026, in Texas.
The features provided by the Age Range API are as follows:
- Request and verify user status and age range → getAgeRange API
- In-app significant change notifications
- showAgeRangeUpdatePermission API (Apple App Store only)
- Parental approval revocation notifications
Warning
Until January 1, 2026, calling the Age Range API may receive exception responses, and there may be no response if distributed through the Apple App Store.
Starting January 1, 2026, calling the Age Range API will return real-time responses.
Age range API operation flow¶
The operation flow following successful or failed calls when gaming apps request the Age Range API is as follows.
When getAgeRange API call succeeds¶
The gaming app operation process according to the response value userState is as follows:
- One of
UNKNOWN,VERIFIED,SUPERVISED: Proceed with the app and provide age-appropriate content- If
SUPERVISEDand notifying of significant in-app changes : Call showAgeRangeUpdatePermission API only for games distributed through Apple App Store
- If
SUPERVISED_APPROVAL_PENDINGorSUPERVISED_APPROVAL_DENIED:- Parental (guardian) approval for the request to allow minors to continue using the app is still pending or denied, age can be verified and app can proceed
REQUIRED: User age has not been verified in the relevant jurisdiction/region, guide users to share age information in marketplace apps or device settings to enable age verification in the app
When getAgeRange API call fails¶
If the call fails after requesting the Age Range API in the app, a ResultAPI failure code will be received. Examples of ResultAPI failure codes are as follows:
API call errors can occur for various reasons, such as using marketplace apps that are not the latest version.
If an error occurs during a session, implementation should minimize user environment disruption, such as terminating the call when the maximum API call retry count is exceeded.
Operation flow by marketplace¶
The API request and processing flow for each marketplace supported by the Age Range API is as follows.
getAgeRange API¶
Call the getAgeRange API from the runtime app to request user status and age information. Even if the app has separate age verification procedures beyond those required by this compliance law, it is recommended to call the getAgeRange API first to verify age.
When calling the getAgeRange API, the status data userState and age range of users residing in regions subject to age verification laws are returned as responses. The basic age ranges returned only for applicable jurisdictions are as follows and may change according to regional requirements:
- 0-12 years old
- 13-15 years old
- 16-17 years old
- 18 years old and above
Calling getAgeRange API¶
Example code for calling the getAgeRange API to request user age range is as follows:
getAgeRange API response¶
The description of getAgeRange API response fields is as follows. You can use each field value to provide game processes according to age.
Response values may change, so please request API responses when the app opens if you want the latest values.
| Response field | Values | Description |
|---|---|---|
userState | VERIFIED | User is 18 years old or older. |
| SUPERVISED | User has a supervised account where a parent has set their age. Use ageLower and ageUpper to verify the user's age range. | |
| SUPERVISED_APPROVAL_PENDING | User has a supervised account, and the supervising parent has not yet approved one or more pending significant changes. Use ageLower and ageUpper to verify the user's age range. Use mostRecentApprovalDate to check the last approved significant change. | |
| SUPERVISED_APPROVAL_DENIED | User has a supervised account, and the parent of the supervised user has denied approval for one or more significant changes. Use ageLower, ageUpper, and mostRecentApprovalDate to check the last approved significant change. | |
| UNKNOWN | User is outside the relevant jurisdiction/region. These users may be 18 years old or older, or younger. | |
| REQUIRED | User has not been verified or supervised in the relevant jurisdiction/region. These users may be 18 years old or older, or younger. To receive age verification, ask users to visit device settings and marketplace apps to verify their status. | |
ageLower | 0 to 18 | Lower bound (inclusive) of the supervised user's age range. Use ageLower and ageUpper to verify the user's age range. |
| -1 | userState is UNKNOWN or REQUIRED. | |
ageUpper | 2 to 18 | Upper bound (inclusive) of the supervised user's age range. Use ageLower and ageUpper to verify the user's age range. |
| -1 | User is 18 years old or older, or userState is UNKNOWN or REQUIRED. | |
mostRecentApprovalDate | Datestamp | Date of the most recent approved significant change. Ex) "2023-07-01T00:00:00.008Z" Apple App Store does not support this. |
| Empty (a blank value) | userState is SUPERVISED and there are no submitted significant changes, or userState is UNKNOWN or REQUIRED. Apple App Store does not support this. | |
ageRangeId | App Store generated ID | Alphanumeric ID generated by the marketplace. Google Play Store : ID assigned by Google Play for supervised user installations, which is the installID. Used to notify app approval revocation. Review app approval revocation documentation.Amazon App Store : userId of the Amazon account.Apple App Store : Not supported. |
| Empty (a blank value) | userState is UNKNOWN or REQUIRED. Apple App Store does not support this. |
Apple App Store age range sharing popup¶
In the Apple App Store, when the getAgeRange API is called, a popup requesting age range sharing is displayed.
Only users who choose to share their age range can have their age range and approval status verified; if they decline, a REQUIRED status is received.
In-app significant change notifications¶
According to regulations in some jurisdictions and regions, when the following changes occur in gaming apps, the gaming app must notify guardians (parents) of the changes and request approval for minor users to continue using the app.
- Changes to data collection, storage, and sharing
- Age rating changes
- Addition of new in-app purchases or advertising features
- User experience changes, etc.
Gaming apps can decide when to notify of changes and request approval. The notification methods for changes by each marketplace are as follows:
- Google Play and Amazon Appstore: Notification through developer consoles operated by each marketplace
- Apple App Store: Notification by directly calling the showAgeRangeUpdatePermission API from the gaming app
showAgeRangeUpdatePermission API¶
For apps distributed to the Apple App Store market, call the showAgeRangeUpdatePermission API directly from the app to notify guardians (parents) of significant changes and request approval.
Note
When writing the description parameter passed by the showAgeRangeUpdatePermission API, use concise and easy-to-understand language so that guardians can clearly understand what has changed in the app. Guardians (parents) will decide whether to approve based on this parameter description.
Example code for calling the showAgeRangeUpdatePermission API is as follows:
API Reference: Unity®
API Reference: C++
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
std::string description = "This update adds video calling and location sharing features.";
AuthV4::showAgeRangeUpdatePermission(description, [=](ResultAPI const & result, AgeRange const & ageRange) {
if (result.isSuccess()) {
// API call success
}
});
API Reference: Kotlin
import com.hive.AuthV4;
import com.hive.ResultAPI;
val description: String = "This update adds video calling and location sharing features."
AuthV4.showAgeRangeUpdatePermission(description, object : AuthV4.AuthV4GetAgeRangeListener {
override fun onAuthV4GetAgeRange(result: ResultAPI, ageRange: AuthV4.AgeRange?) {
if (result.isSuccess) {
// API call success
}
}
})
API Reference: Java
API Reference: Swift
API Reference: Objective-C
#include "HiveAuthV4.h"
FString Description = TEXT("This update adds video calling and location sharing features.");
FHiveAuthV4::ShowAgeRangeUpdatePermission(Description, FHiveAuthV4OnShowAgeRangeUpdatePermissionDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHiveAuthV4AgeRange& AgeRange) {
if (Result.IsSuccess()) {
// Call success
}
}));
Parental approval revocation notifications¶
Guardians (parents) can revoke approval even after approving in-app significant change notifications. When approval is revoked, minor users can no longer access the app.
When guardians revoke approval, the methods to check revocation notifications through each marketplace are as follows:
- Google Play: You can confirm the revocation by downloading the
installIDlist from the Age Signals page.- Google Play's
installIdis valid for 3 months and then deleted.
- Google Play's
- Apple App Store: Sends notifications about approval revocation.
- Amazon Appstore: You can find out about revocation by downloading Amazon
userIdin the reporting section of the developer console.
Age range permission settings by iOS target engine¶
The methods for setting Age Range permissions in each engine environment developing for iOS targets are as follows.
Native¶
To request the Age Range API in a Native environment, add Declared Age Range permissions in the following order:
- Select your developer project from the project navigator in the Xcode project window.
- Select your developer app from the TARGETS list.
- Click the Signing & Capabilities tab.
- Click the + Capability button in the upper left of the Signing & Capabilities tab.
- Select Declared Age Range from the list to add it.

- You can see Declared Age Range added to the Signing & Capabilities list.
Unity¶
To request the Age Range API in a Unity environment, add Declared Age Range permissions in the following order. You can easily set this up with the Unity editor.
- Select Hive from the top menu in Unity.
- Select Build project post process setting > iOS.

- Select the Age Range checkbox in Hive PostProcess Editor(iOS).

- After iOS project export, you can see Declared Age Range added to the Signing & Capabilities list.
Unreal Engine¶
In Unreal Engine environment, add Declared Age Range permissions through the following entitlements template. Add the key value to the entitlements template file you are using.
If you are not using a template, refer to the


