Cryptographic proof for trading signals. Every signal is hash-committed before reveal β verify it yourself.
Signal providers in crypto can manipulate their track records β delete losing signals, change entry points retroactively, or publish different signals to different groups.
CryptaVeritas solves this with cryptographic proof.
Before a signal is published, its SHA-256 hash (with salt and domain prefix) is recorded on-chain. After the signal is revealed, anyone can recompute the hash and verify it was not altered.
"Don't trust the signal source β verify the hash."
1. COMMIT β Signal source publishes SHA-256 hash before revealing signal
cryptasignals:v1|signal|{signal_data}|{salt}
2. REVEAL β After deadline, signal is decrypted and published with status:
VERIFIED / INVALID_HASH / NO_SECRET / DECRYPT_FAILED
3. VERIFY β Anyone can recompute the hash independently:
browser tool β cryptaveritas.github.io/cryptaveritas-verify
CLI tool β node cli-verify.js <hash> <signal_json> <salt>
Open cryptaveritas.github.io/cryptaveritas-verify
Paste the hash, signal JSON, and salt β click Verify.
node cli-verify.js <hash> <signal_json> <salt>Example:
node cli-verify.js \
"9ac1bb295401d3330ae5f2042408c4a9777e381dc3fabb73d6036e6adab26782" \
'{"version":"v1","publisher":"agent","nonce":"test123","pair":"SOL/USDC","side":"buy","entry":100.5,"createdAt":1716440000000}' \
"109194476613c8796bc8be37b26b20e1b2ed8b695e71f5ffd845ae99a698f943"Output:
VERIFIED β Hash matches. Signal was not tampered with.
The commitment hash is computed as:
SHA-256( "cryptasignals:v1|signal|" + toStrictString(signal) + "|" + salt )
Where toStrictString serializes the signal object with sorted keys and no whitespace, ensuring deterministic output regardless of key order.
This means:
- The hash is reproducible by anyone with the signal data and salt
- Key order in the JSON does not matter
- The domain prefix
cryptasignals:v1|signal|prevents replay attacks across versions
{
"version": "v1",
"publisher": "agent_id",
"nonce": "unique_string",
"pair": "SOL/USDC",
"side": "buy",
"entry": 100.5,
"createdAt": 1716440000000,
"stopLoss": 95.0,
"takeProfit": 115.0,
"timeframe": "4h"
}| Without CryptaVeritas | With CryptaVeritas |
|---|---|
| Signal provider can edit history | Hash proves signal was fixed before reveal |
| No way to detect manipulation | Anyone can verify independently |
| Trust is reputational | Trust is mathematical |
| Closed, unauditable | Open, reproducible |
As of May 2026, no public protocols with pre-commit mechanics for trading signals have been identified.
| Project | Approach | Limitation |
|---|---|---|
| Alpha Impact | Post-fact verification via onchain trades | Verifies after the fact, not before |
| Knidos | ZK verification of closed fund results | Not for public signals |
| CryptoNinjas | Self-reporting with public P&L | No cryptography |
cryptaveritas-verify/
βββ index.html # Browser-based hash verifier
βββ cli-verify.js # Node.js CLI verifier
βββ booklet.html # Partner booklet (full protocol overview)
βββ README.md # This file
Full technical and business overview of the CryptaVeritas protocol:
The core protocol (signal commitment engine, Telegram bot, HTTP API) is maintained in a private repository. This public repository contains only the verification tools β intentionally open-source under GPL v3.0.
Model: Closed core + open verifier Philosophy: You should never have to trust us to verify a signal.
GNU General Public License v3.0
This verifier is free software. You can redistribute it, modify it, and use it for any purpose under the terms of GPL v3.0.
See LICENSE for full terms.
CryptaVeritas Β· Verify a signal Β· Partner booklet Β· GitHub
May 2026