Application-facing temporal governance for production timing stacks. Your timing stack delivers time. GAL-2 governs whether applications should consume it.
From independent developers to global enterprises, GAL-2™ delivers synchronized time alignment — perfectly scaled, flawlessly secure.
GAL-2™ Time Contract
GAL-2 Time Contract RC3.1 is a local daemon that exposes gal2_time
and runtime contract semantics for applications that need governed time consumption,
bounded holdover, controlled rejoin, and fail-closed behavior.
Precision protects the reference. GAL-2 protects the consumer.
RC3.1 is intended for developer pilots, architecture review, controlled technical validation, and non-production evaluation. Activation requires a valid GAL-2 API key.
This release is provided AS IS and AS AVAILABLE. It is not certified for production critical infrastructure, safety-critical systems, regulated trading, medical systems, aviation, emergency services, life-support systems, nuclear facilities, weapons systems, or other high-risk environments without a separate written agreement with GAL-2 Technologies LLC.
Applications call the local Time Contract and consume gal2_time with
safe_to_consume, valid_until, mode,
reason, monotonic_sequence, and source_lineage.
The contract can operate in LIVE, DEGRADED, HOLDOVER, REJOIN, WARMING, or FAIL_CLOSED. When policy can no longer justify safe consumption, protected operations should not proceed through the GAL-2 contract path.
The local daemon is the contract layer. The GAL-2 API and protected core remain upstream. The daemon reconciles with the API when available, preserves local continuity when policy allows, and exposes governed time before applications commit state.
GAL-2 Time Contract does not replace UTC, GNSS, PTP, NTP, TAI, chrony, atomic clocks, grandmasters, or timing receivers. It complements them at the application boundary.
Install the notarized macOS package, add your GAL-2 API key, restart the LaunchDaemon, and verify the local Time Contract.
Open GAL2-TimeContract-RC31-macos-arm64-founder-notarized.pkg and complete the installer.
printf "Enter GAL-2 API key: " stty -echo IFS= read -r GAL2_API_KEY stty echo printf "\n" sudo mkdir -p /usr/local/gal2/config printf "GAL2_API_KEY=%s\nGAL2_API_URL=https://api-v2.gal-2.com/time\nGAL2_BIND_HOST=127.0.0.1\nGAL2_BIND_PORT=9095\n" "$GAL2_API_KEY" | sudo tee /usr/local/gal2/config/daemon.env >/dev/null sudo chmod 600 /usr/local/gal2/config/daemon.env sudo chown root:wheel /usr/local/gal2/config/daemon.env unset GAL2_API_KEY
sudo launchctl kickstart -k system/com.gal2.daemon
curl -s http://127.0.0.1:9095/status | python3 -m json.tool
curl -s http://127.0.0.1:9095/contract | python3 -m json.tool
/usr/local/gal2/bin/gal2-doctor-rc3/gal2-doctor-rc3 --base-url http://127.0.0.1:9095
"schema": "gal2-daemon-time-contract-v1" "version": "1.0.0-contract-rc3" "mode": "LIVE" "safe_to_consume": true "reason": "fresh_api_sync"
After install or restart, the daemon may briefly return REJOIN with reason controlled_rejoin_slew_active. That is expected. GAL-2 is reconciling without stepping time backward.
Download the signed Linux release, verify SHA256 and GPG signature, extract, install, activate, and verify the local Time Contract.
curl -O https://gal2-marketplace-assets.s3.amazonaws.com/public/time-contract/v1.0.0-rc3.1/downloads/linux/GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz curl -O https://gal2-marketplace-assets.s3.amazonaws.com/public/time-contract/v1.0.0-rc3.1/downloads/linux/GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz.sha256.txt curl -O https://gal2-marketplace-assets.s3.amazonaws.com/public/time-contract/v1.0.0-rc3.1/downloads/linux/GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz.asc curl -O https://gal2-marketplace-assets.s3.amazonaws.com/public/time-contract/v1.0.0-rc3.1/downloads/linux/GAL2_RC31_LINUX_RELEASE_PUBLIC_KEY.asc
shasum -a 256 GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz cat GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz.sha256.txt
3c0eb646e0c95ce9c7344c1b742b6bf4039a2d1b82dd1d192fdf2a2735190eb2
gpg --import GAL2_RC31_LINUX_RELEASE_PUBLIC_KEY.asc gpg --verify GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz.asc GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz
tar -xzf GAL2-TimeContract-RC31-linux-installer-friendly-20260504.tar.gz cd GAL2_TimeContract_RC31_LINUX_INSTALLER_FRIENDLY_20260504 sudo ./scripts/install.sh
sudo ./scripts/activate.sh
curl -s http://127.0.0.1:9095/status | python3 -m json.tool
curl -s http://127.0.0.1:9095/contract | python3 -m json.tool
/usr/local/gal2/bin/gal2-doctor --base-url http://127.0.0.1:9095
mode: LIVE reason: fresh_api_sync safe_to_consume: true
Without an API key and without cache, Linux should report WARMING, reason warming_no_cache, and safe_to_consume=false.
1 API key • 10,000 requests/month • Quickstart guide • Community support
A valid GAL-2 API key is required to activate the Time Contract. Paid plans provide API keys, request limits, and support levels for evaluation or deployment.
Cancel anytime. No hidden fees.
1 API key • 100,000 requests/month • Commercial license • Priority support
A valid GAL-2 API key is required to activate the Time Contract. Paid plans provide API keys, request limits, and support levels for evaluation or deployment.
Cancel anytime. No hidden fees.
Dedicated API keys • Higher request limits • Evaluation support • SLA options
GAL-2 exposes governed time and Time Contract signals so applications can evaluate whether time is safe to consume before committing state.
After purchasing your plan on GAL-2.com, you will receive your personal x-api-key, secured through the GAL-2 AWS infrastructure.
Use your GAL-2 API key in the request header.
curl -s -H "x-api-key: YOUR_GAL2_API_KEY" \
"https://api-v2.gal-2.com/prod/time"
Call the Time API from a backend service or secure server context.
import fetch from "node-fetch";
const res = await fetch(
"https://api-v2.gal-2.com/prod/time",
{
headers: {
"x-api-key": "YOUR_GAL2_API_KEY"
}
}
);
console.log(await res.json());
Use Python for testing, integration checks, and evaluator scripts.
import requests
url = "https://api-v2.gal-2.com/prod/time"
headers = {
"x-api-key": "YOUR_GAL2_API_KEY"
}
res = requests.get(url, headers=headers)
print(res.json())
x-api-key header will be rejected.GAL-2 is not presented as a replacement for UTC, GNSS, PTP, NTP, grandmasters, or hardware clocks. GAL-2 operates at the application boundary, helping software decide whether time is safe to consume under current conditions.
Business risk
Timing incidents are not only clock problems. When software blindly trusts raw time, unsafe timestamps can become committed application state.
Applications may continue committing during stale references, backward steps, leap-second-like discontinuities, Y2038-style boundaries, VM resume behavior, reference loss, or recovery out of phase.
The cost can show up as downtime, engineering investigation, corrupted data cleanup, audit exposure, customer impact, delayed recovery, and loss of confidence in system history.
Applications consume governed gal2_time through a Time Contract.
GAL-2 can continue within policy, hold over, rejoin under control, or fail closed
before unsafe time becomes committed state.
A practical cost model:
Timing incident cost = downtime + engineering remediation + corrupted data cleanup + audit exposure + customer impact + recovery delay + reputational damage.

Clear answers about governed time, application-state risk, and how GAL-2 helps protected systems hold, rejoin, or fail closed before unsafe time becomes committed state.
Technical and buyer FAQ
GAL-2™ Time Contract is an application-facing temporal governance layer. It does not replace UTC, GNSS, PTP, NTP, chrony, atomic clocks, grandmasters, or timing receivers. It sits closer to the software boundary and serves governed gal2_time as the application-facing output, so protected systems can continue safely within policy, rejoin under control, or fail closed before unsafe time becomes committed state.
gal2_time with runtime semantics such as safe_to_consume, valid_until, mode, reason, monotonic_sequence, and source_lineage. The goal is to let protected applications consume governed time instead of trusting raw time directly.
gal2_time normally. When timing conditions degrade, GAL-2 can preserve bounded monotonic continuity, enter holdover, perform controlled rejoin, or fail closed before unsafe time becomes committed state.
The key point is that GAL-2 does not promise to keep every system running forever. It gives applications a governed path: continue safely when justified, recover under control when possible, or stop protected operations cleanly when safety can no longer be justified.
gal2_time through the contract. When conditions degrade, GAL-2 can continue within policy, enter holdover, perform controlled rejoin, or fail closed before unsafe time becomes trusted state.
/status, call /contract, and integrate one protected workflow against gal2_time and the Time Contract semantics.
http://127.0.0.1:9095/contract. Applications should use the Time Contract for protected state-changing operations instead of reading raw system time directly for those operations.
gal2_time, because that is the governed timestamp the application consumes. Then the application evaluates safe_to_consume, valid_until, mode, reason, monotonic_sequence, and source_lineage. Status fields describe the governed output. They are not the product by themselves.
/contract endpoint and use gal2_time only when the Time Contract allows it. The application should log mode, reason, sequence, validity, and lineage with protected commits.
gal2_time. Define behavior for safe_to_consume=false. Log contract fields. Run nominal and impairment tests. Review false positives, latency, and fail-closed behavior before any production decision.
/usr/local/gal2/config/daemon.env. The daemon should not serve production GAL-2 Time without a valid API key.
WARMING, reason such as warming_no_cache, and safe_to_consume=false.
clock_gettime()?FAIL_CLOSED and safe_to_consume=false. At that point, protected state-changing operations should block, defer, or follow an explicitly defined application fallback. Silent fallback to raw time is not recommended for protected operations.
safe_to_consume=false mean?safe_to_consume=true mean?gal2_time is safe to consume under the current policy, mode, validity window, and source lineage. It is not an unlimited guarantee that all possible timing risk has disappeared.
LIVE, DEGRADED, HOLDOVER, REJOIN, WARMING, and FAIL_CLOSED. These modes help applications understand whether governed time is fresh, degraded, locally held, recovering, warming up, or unsafe to consume.
safe_to_consume=false, or commit through raw time side paths.
gal2_time moves backward for contract consumers, if holdover continues past policy without fail-closed behavior, if mode or reason fields misrepresent reality, or if evidence cannot be reproduced.