The initialize method is the first and most critical step in setting up the REL-ID SDK. It establishes a secure session and begins the onboarding or authentication workflow. This method is asynchronous and its progress is tracked via events.
Bootstraps the REL-ID SDK.
Creates a REL-ID session in the PRIMARY state.
Prepares the SDK for secure communication and identity workflows (e.g., onboarding, login).
Asynchronous : It does not return a direct response. Progress is reported via SDK events.
Event-driven : You must register event listeners before or at the time of calling initialize() to capture lifecycle events.
Platform-specific setup : Parameters and listener methods vary slightly across platforms.
Event Description onInitializeProgressTracks progress (e.g., threat checks, server connection). Includes statuses like STARTED, COMPLETED, INIT_FAILED. onInitializeErrorReports errors during initialization (e.g., invalid parameters, network issues). onUserConsentThreatsTriggered if non-terminating threats are detected. App decides whether to proceed using takeActionOnThreats(). onTerminateWithThreatsTriggered for critical threats (configured to terminate). These are blocking issues. onInitializedIndicates that initialization completed successfully. Returns session metadata and IDV configuration (if available). getUserTriggered post-initialization when the SDK is ready to accept a user ID. Your app should call setUser() here.
REL-ID SDK must be initialized before using any of its features. Below are platform-specific initialization methods and parameter explanations.
⚛️ React Native JavaScript
RdClient.initialize(
currentAgentInfo,
currentGatewayHost,
currentGatewayPort,
cipherSpecs,
cipherSalt,
jsonProxySettings,
sslDetails,
RDNALoggingLevel.RDNA_NO_LOGS,
(syncResponse) => {
console.log(syncResponse);
}
);Parameter Type Description currentAgentInfoString Software identity info for API-runtime authentication. currentGatewayHostString Hostname or IP of the gateway server. currentGatewayPortNumber Port number of the gateway server. cipherSpecsString Format: "AES/256/CFB/NoPadding:SHA-256" cipherSaltString Recommended: <APPLICATION_PACKAGE_NAME> jsonProxySettingsString (JSON) Optional proxy settings JSON. sslDetailsObject Optional SSL details: base64 cert, password, enableSSL. RDNALoggingLevelEnum Enum for SDK log level.
Always ensure you initialize the SDK before making any other SDK calls.
Verify all cryptographic parameters (cipherSpec, cipherSalt) follow the expected format.
For production, use RDNA_NO_LOGS to disable verbose logging.
If using proxy or SSL certificates, validate configurations and storage security.
💙 Flutter Dart
rdnaClient.initialize(
AGENT_INFO,
HOST,
PORT,
CIPHERSPECS,
CIPHER_SALT,
PROXY_SETTINGS,
RDNASSLCertificate,
RDNALoggingLevel.RDNA_NO_LOGS
);Parameter Type Description AGENT_INFOString Software identity string. HOSTString Gateway server IP or hostname. PORTint Gateway port. CIPHERSPECSString Cipher config string. CIPHER_SALTString Recommended: <APPLICATION_PACKAGE_NAME> PROXY_SETTINGSJSON String Optional proxy info. RDNASSLCertificateJSON Object Optional: base64 cert, password, enableSSL. RDNALoggingLevelEnum Controls logging level.
Always ensure you initialize the SDK before making any other SDK calls.
Verify all cryptographic parameters (cipherSpec, cipherSalt) follow the expected format.
For production, use RDNA_NO_LOGS to disable verbose logging.
If using proxy or SSL certificates, validate configurations and storage security.
⚙️ Cordova JavaScript
com.uniken.rdnaplugin.RdnaClient.initialize(
initSuccess,
initFailure,
[
AGENT_INFO,
HOST,
PORT,
CIPHERSPECS,
CIPHER_SALT,
PROXY_SETTINGS,
RDNASSLCertificate,
com.uniken.rdnaplugin.RdnaClient.RDNALoggingLevel.RDNA_NO_LOGS
]
);Parameter Type Description initSuccessFunction Success callback. initFailureFunction Failure callback. AGENT_INFOString Agent info for session setup. HOSTString Gateway IP/hostname. PORTNumber Gateway port. CIPHERSPECSString Format: "AES/256/CFB/NoPadding:SHA-256" CIPHER_SALTString Salt string. PROXY_SETTINGSJSON Optional proxy config. RDNASSLCertificateObject Optional SSL cert object. RDNALoggingLevelEnum SDK logging level.
Always ensure you initialize the SDK before making any other SDK calls.
Verify all cryptographic parameters (cipherSpec, cipherSalt) follow the expected format.
For production, use RDNA_NO_LOGS to disable verbose logging.
If using proxy or SSL certificates, validate configurations and storage security.
🍎 Native iOS (Objective-C) Objective-C
-(RDNAError *)initialize:(NSString *)agentInfo
Callbacks:(id<SomeCallbackProtocol>)callbacks
GatewayHost:(NSString *)authGatewayHNIP
GatewayPort:(uint16_t)authGatewayPORT
CipherSpec:(NSString *)cipherSpec
CipherSalt:(NSString *)cipherSalt
ProxySettings:(RDNAProxySettings *_Nullable)proxySettings
RDNASSLCertificate:(RDNASSLCertificate *_Nullable)rdnaSSLCertificate
DNSServerList:(NSArray<NSString*> *_Nullable)dnsServerList
RDNALoggingLevel:(RDNALoggingLevel)loggingLevel
AppContext:(id)appCtx;Parameter Type Description agentInfoString Identity for backend session. callbacksObject Callback implementation. authGatewayHNIPString Gateway server hostname/IP. authGatewayPORTint Gateway port. cipherSpecString Encryption format string. cipherSaltString Salt string. proxySettingsObject Optional proxy info. rdnaSSLCertificateObject Optional cert info. dnsServerListArray Optional DNS server list. loggingLevelEnum SDK log level. appCtxObject Application context.
Always ensure you initialize the SDK before making any other SDK calls.
Verify all cryptographic parameters (cipherSpec, cipherSalt) follow the expected format.
For production, use RDNA_NO_LOGS to disable verbose logging.
If using proxy or SSL certificates, validate configurations and storage security.
🤖 Native Android Java
RDNA.RDNAError Initialize(
String agentInfo,
RDNACallbacks rdnaCallbacks,
String authGatewayHNIP,
int authGatewayPORT,
String cipherSpecs,
String cipherSalt,
RDNAProxySettings proxySettings,
RDNASSLCertificate sslCertificate,
String[] dnsServer,
RDNALoggingLevel loggingLevel,
Object appCtx
);Parameter Type Description agentInfoString Backend session agent info. rdnaCallbacksObject Callback implementation. authGatewayHNIPString Gateway IP/host. authGatewayPORTint Gateway port. cipherSpecsString Encryption string. cipherSaltString Salt string. proxySettingsObject Optional proxy config. sslCertificateObject Optional SSL info. dnsServerArray Optional DNS array. loggingLevelEnum SDK logging level. appCtxObject Android app context.
Always ensure you initialize the SDK before making any other SDK calls.
Verify all cryptographic parameters (cipherSpec, cipherSalt) follow the expected format.
For production, use RDNA_NO_LOGS to disable verbose logging.
If using proxy or SSL certificates, validate configurations and storage security.
This section documents specific error codes that may occur during the Initialize API call and the recommended developer action.
Enum : RDNA_ERR_RDNA_ALREADY_INITIALIZED
Event/API : Initialize(Sync)
Action : Terminate the SDK to avoid re-initialization. This helps during development and prevents errors during React Native code refresh.
Enum : RDNA_ERR_INITIALIZE_ALREADY_IN_PROGRESS
Event/API : Initialize(Sync)
Action : Avoid invoking the Initialize API again while initialization is already in progress. Wait for the current initialization to complete.
Enum : RDNA_ERR_DEVICE_SECURITY_CHECKS_FAILED_FRIDA_MODULES_DETECTED
Event/API : Initialize(Sync)
Action : The SDK detected a Frida attack. This is triggered when:
Connection profile has MTD enabled, and
“Device Threat” category has “App Tampering” detection set to Terminate or Report .