V1 to V2 Server Migration Guide
Important Notice
The V1 server (NyanCat backend) will be deprecated on June 30, 2026.
All developers must migrate to the V2 server (CrimsonLion backend) before this date to ensure continued service availability.
Additionally, the beta phase for V2 server will end on June 30, 2026, at which point V2 will become the stable, production-ready backend.
Overview
This guide helps you migrate from the V1 server (NyanCat backend) to the V2 server (CrimsonLion backend). The V2 server offers enhanced features, improved performance, and additional vital signs measurements.
Key Dates
| Date | Event |
|---|---|
| June 30, 2026 | V1 server (NyanCat) end of life |
| June 30, 2026 | V2 server (CrimsonLion) beta period ends |
| After June 30, 2026 | Only V2 server will be supported |
Why Migrate to V2?
The V2 server (CrimsonLion backend) provides:
- Enhanced vital signs: Additional measurements including physical wellness, mental wellness, and more
- Improved accuracy: Better signal processing and analysis algorithms
- Better performance: Optimized cloud infrastructure
- Future updates: All new features will only be available on V2
Migration Steps
Step 1: Enable Precision Mode (One-Line Change!)
Migrating to V2 is Simple
Just add one line of code to your configuration:
precisionMode: PrecisionMode.relaxedWhen you set precisionMode, the SDK automatically uses the V2 server (CrimsonLion backend). You do not need to manually set the serverId.
That's it! This single line enables V2 and all its enhanced features.
To migrate to V2, simply add this one line to your SDK configuration:
const config = {
sdkCredentials: {
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
},
precisionMode: PrecisionMode.relaxed // ← ADD THIS ONE LINE - That's it!
}const config = {
sdkCredentials: {
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
},
precisionMode: PrecisionMode.relaxed // ← ADD THIS ONE LINE - That's it!
}camera.configure {
sdkCredentials = SdkCredentials(
apiKey = "YOUR_API_KEY",
userId = "YOUR_USER_ID"
)
precisionMode = PrecisionMode.Relaxed // ← ADD THIS ONE LINE - That's it!
}camera.setup { camera in
camera.sdkCredentials = .init(
apiKey: "YOUR_API_KEY",
userId: "YOUR_USER_ID"
)
camera.precisionMode = .relaxed // ← ADD THIS ONE LINE - That's it!
}VitalSignCamera(
sdkCredentials: SdkCredentials(
apiKey: 'YOUR_API_KEY',
userId: 'YOUR_USER_ID',
),
precisionMode: PrecisionMode.relaxed, // ← ADD THIS ONE LINE - That's it!
// ...
)Precision Mode Options
PrecisionMode.relaxed(TypeScript / JavaScript / Flutter) orPrecisionMode.Relaxed(Android): Recommended for most applications. Uses V2 server with balanced performance and accuracy.PrecisionMode.strict(TypeScript / JavaScript / Flutter) orPrecisionMode.Strict(Android): Uses V2 server with stricter quality requirements for maximum accuracy.
Setting Up Credentials with SdkCredentials
Recommended
Always supply your API key and user ID using the SdkCredentials object, as shown in the examples above. This is the recommended approach for V2 authentication.
| Platform | Usage |
|---|---|
| TypeScript / JavaScript | sdkCredentials: { apiKey: "...", userId: "..." } |
| Android (Kotlin) | sdkCredentials = SdkCredentials(apiKey = "...", userId = "...") |
| iOS (Swift) | camera.sdkCredentials = SdkCredentials(apiKey: "...", userId: "...") |
| Flutter (Dart) | sdkCredentials: SdkCredentials(apiKey: '...', userId: '...') |
Passing apiKey or userId as top-level configuration properties is still supported but will be deprecated in a future release. We strongly recommend migrating to SdkCredentials now to avoid breaking changes later.
Step 2: Update User Information Requirements
V2 server has stricter requirements for user information. Ensure you provide:
- Age (required)
- Gender (required)
- Weight (required)
- Height (required)
Important
While these fields were optional in V1, they are required in V2 for accurate measurements, especially for blood pressure and other vital signs.
Example:
const userInfo = {
age: 30,
gender: Gender.Male,
weight: 70, // in kg
height: 175 // in cm
}Step 3: Test Your Integration
After making the changes:
- Test all vital sign measurements
- Verify scan conditions and signal quality
- Check health results accuracy
- Ensure error handling works correctly
- Test on all supported platforms
Step 4: Update SDK Version (If Needed)
Ensure you're using the latest SDK version that fully supports V2 server:
API Differences
Scan Conditions
In V1, scan conditions were accessed via array indices. In V2, use named properties:
V1 (Deprecated):
const conditions = healthResult.health.scanParameters.conditions
const hrSteadiness = conditions[0]
const goodSnr = conditions[1]V2 (Recommended):
const signalConditions = healthResult.health.scanParameters.signalConditions
const hrSteadiness = signalConditions.hrSteadiness
const goodSnr = signalConditions.goodSnrAdditional Vital Signs in V2
V2 server provides additional vital signs not available in V1:
- Physical wellness metrics
- Mental wellness assessments
- Enhanced cardiovascular analysis
- Additional risk assessments
Refer to the Interpreting Results section for the complete list of V2 vital signs.
Common Issues and Solutions
Issue: Missing Required User Information
Problem: V2 requires age, gender, weight, and height.
Solution: Ensure all user information fields are provided:
const userInfo = {
age: userAge,
gender: userGender,
weight: userWeight,
height: userHeight
}Issue: Different Scan Condition Structure
Problem: Code accessing scan conditions by array index fails.
Solution: Update to use named properties in signalConditions.
Issue: Precision Mode Not Set
Problem: Defaulting to legacy mode (V1).
Solution: Explicitly set precision mode in configuration.
Support
If you encounter issues during migration:
- Review this guide and the Vitals Cloud Service documentation
- Check the FAQ for common questions
- Contact our support team at support@panoptic.ai
- Refer to sample code in the Downloads section
Timeline Reminder
Critical Dates
- Now: Begin migration to V2 server
- June 30, 2026: V1 server deprecated, V2 beta ends
- After June 30, 2026: Only V2 server available
Plan your migration early to avoid service interruption. We recommend completing migration at least one month before the deprecation date.
Next Steps
- Review Vitals Cloud Service for V2 features
- Update your application configuration
- Test thoroughly on V2 server
- Deploy updated version to production