NavCore Quick Start
Get NavCore running in 5 minutes.
Prerequisites
- Python 3.10+
- QCOS API key (get one here)
- pip or pipenv
Step 1: Install the SDK
pip install qcos-sdk
Or with pip extras:
pip install qcos-sdk[navcore]
Step 2: Configure API Key
export QCOS_API_KEY="qcos_live_your_key_here"
Or create a .env file:
QCOS_API_KEY=qcos_live_your_key_here
Step 3: Get Your First Position
from qcos.navcore import QuantumGPS
# Initialize (reads API key from environment)
gps = QuantumGPS()
# Get authenticated position
position = gps.get_position(
authenticate=True,
spoofing_check=True
)
# Print results
print(f"Latitude: {position.latitude:.6f}")
print(f"Longitude: {position.longitude:.6f}")
print(f"Altitude: {position.altitude:.1f}m")
print(f"Time: {position.timestamp}")
print(f"Integrity: {position.integrity_score:.2%}")
print(f"Spoofing: {'⚠️ DETECTED' if position.spoofing_detected else '✅ Clear'}")
Expected Output:
Latitude: 59.436962
Longitude: 24.753574
Altitude: 45.2m
Time: 2026-02-06T12:00:00.000000Z
Integrity: 98.50%
Spoofing: ✅ Clear
Step 4: Monitor Position Stream
from qcos.navcore import QuantumGPS
gps = QuantumGPS()
# Stream positions at 10 Hz
for position in gps.stream(rate_hz=10):
print(f"[{position.timestamp}] {position.latitude:.6f}, {position.longitude:.6f}")
if position.spoofing_detected:
print("⚠️ SPOOFING ALERT!")
break
Step 5: Get Timing with Holdover
from qcos.navcore import QuantumTiming
timing = QuantumTiming()
# Get quantum-authenticated time
time_data = timing.get_time(
source="gps",
fallback_to_holdover=True
)
print(f"UTC Time: {time_data.utc}")
print(f"TAI Time: {time_data.tai}")
print(f"GPS Week: {time_data.gps_week}")
print(f"Source: {time_data.source}") # 'gps' or 'holdover'
print(f"Accuracy: ±{time_data.accuracy_ns}ns")
Step 6: Generate Position Evidence
from qcos.navcore import QuantumGPS
gps = QuantumGPS()
# Get position with evidence bundle
position = gps.get_position(
generate_evidence=True,
pqc_signing=True
)
# Access the evidence bundle
evidence = position.evidence_bundle
print(f"Bundle ID: {evidence.bundle_id}")
print(f"Algorithm: {evidence.signature_algorithm}")
# Export for audit
evidence.export("position_evidence.json")
Step 7: Check Spoofing Status
from qcos.navcore import SpoofingDetector
detector = SpoofingDetector()
# Run continuous spoofing check
status = detector.check()
print(f"Status: {status.status}") # 'clear', 'warning', 'alert'
print(f"Confidence: {status.confidence:.2%}")
if status.status != 'clear':
print(f"Threat Type: {status.threat_type}")
print(f"Recommended: {status.recommended_action}")
Complete Example
Here's a complete example combining all features:
#!/usr/bin/env python3
"""NavCore Complete Example"""
from qcos.navcore import QuantumGPS, QuantumTiming, SpoofingDetector
def main():
# Initialize components
gps = QuantumGPS()
timing = QuantumTiming()
detector = SpoofingDetector()
# 1. Check for spoofing first
spoofing = detector.check()
if spoofing.status == 'alert':
print("🚨 SPOOFING DETECTED - Entering holdover mode")
return
# 2. Get authenticated position
position = gps.get_position(
authenticate=True,
spoofing_check=True,
generate_evidence=True
)
# 3. Get quantum timing
time_data = timing.get_time(fallback_to_holdover=True)
# 4. Print results
print("=" * 50)
print("NavCore Position Report")
print("=" * 50)
print(f"Position: {position.latitude:.6f}°N, {position.longitude:.6f}°E")
print(f"Altitude: {position.altitude:.1f}m")
print(f"UTC Time: {time_data.utc}")
print(f"Timing Source: {time_data.source}")
print(f"Timing Accuracy: ±{time_data.accuracy_ns}ns")
print(f"Integrity Score: {position.integrity_score:.2%}")
print(f"Spoofing Status: {'Clear' if not position.spoofing_detected else 'ALERT'}")
print(f"Evidence Bundle: {position.evidence_bundle.bundle_id}")
print("=" * 50)
# 5. Export evidence for audit
position.evidence_bundle.export("latest_position.json")
print("Evidence saved to latest_position.json")
if __name__ == "__main__":
main()
Using the REST API Directly
If you prefer REST API over the SDK:
Get Position
curl -X POST https://api.softquantus.com/api/v2/navcore/position \
-H "Authorization: Bearer $QCOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"authenticate": true,
"spoofing_check": true,
"generate_evidence": true
}'
Get Timing
curl -X POST https://api.softquantus.com/api/v2/navcore/timing \
-H "Authorization: Bearer $QCOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fallback_to_holdover": true
}'
Check Spoofing
curl https://api.softquantus.com/api/v2/navcore/spoofing/status \
-H "Authorization: Bearer $QCOS_API_KEY"
Configuration Options
from qcos.navcore import QuantumGPS, NavCoreConfig
config = NavCoreConfig(
# Positioning
update_rate_hz=10,
min_satellites=4,
# Security
require_authentication=True,
spoofing_detection=True,
pqc_algorithm="ML-DSA-65",
# Holdover
enable_holdover=True,
max_holdover_duration_s=3600,
# Evidence
auto_generate_evidence=True,
evidence_storage="cloud"
)
gps = QuantumGPS(config=config)
Next Steps
- API Reference - Explore all endpoints
- Spoofing Detection Guide - Deep dive into detection
- Evidence Bundles - Working with evidence
- Integration Guide - Connect to your systems
© 2024-2026 SoftQuantus Innovative OÜ