# Upvera Technology > upvera.tech is the technology site of Upvera, a platform where startups show their progress through work that is read from its sources. It describes the systems behind Upvera as numbered reports, lists every rule version as a release, and offers tools to verify Upvera's public record in your own browser. Upvera is the company behind upvera.co, the Upvera iPhone app, app.upvera.co and upvera.dev. Upvera Value is computed by Upvera and unitless; it is not a price and not what a company is worth. UPV is Upvera's in-app credit and can't be cashed out. ## Systems - [Upvera Proof Engine](https://upvera.tech/proof.md): Upvera Proof Engine reads a startup's work where it lives, in its repositories, its store listings and its running product, and keeps it as evidence that no one typed in. - [Upvera Value Engine](https://upvera.tech/value.md): Upvera Value Engine computes Upvera Value, a unitless reading of a startup's verified work, the same way on every machine and with a receipt for every change. - [Upvera Day Roots](https://upvera.tech/roots.md): Upvera Day Roots seals Upvera's activity and money movements into minute blocks and publishes one root a day that anyone can check from their own browser. - [Upvera ID](https://upvera.tech/identity.md): Upvera ID lets people sign in to other apps with Upvera, gives every site a different identifier for the same person, tells the site how strongly that person is verified, and lets AI draft on their behalf but never publish. - [Upvera Trust Signals](https://upvera.tech/trust.md): Upvera Trust Signals are the rules that keep every signal on Upvera honest: the server keeps the time, bots never count, small groups stay hidden and a number reads the same everywhere it appears. ## Guides and tools Each guide answers one practical question and works without an Upvera account. - [How to let an AI agent draft but never publish](https://upvera.tech/guides/ai-agent-draft-not-publish.md): Give the model tools that read and prepare, and leave the irreversible tool out of its tool list entirely, so that only a person pressing a button in your own interface can call it. Bind that press to a one-time ticket and a hash of the exact content the person saw, then add a short undo window, a separate consent scope, per-account limits and an audit trail. - [How to check a startup's claims before you believe them](https://upvera.tech/guides/check-startup-claims.md): Check each claim against a record the startup can't edit: domain registration data, archived copies of its website, app store version history, and public repository and package activity. Treat screenshots and self-reported numbers as claims, not evidence, and for revenue ask for a read-only connection or a band read from the billing tool. - [Why the same calculation gives different numbers, and how to make it deterministic](https://upvera.tech/guides/deterministic-numbers.md): The same calculation can give different numbers because floating-point arithmetic rounds after every operation, so the order of a sum, the compiler, the processor and the math library can all change the last digits. To make it deterministic, compute in integers at a fixed scale with a written rounding rule, fix the order of every reduction, and avoid platform math functions. Then serialize results canonically, hash them, and check the hashes against golden test vectors on every target you ship. - [Check a domain's TXT records and verify you own it](https://upvera.tech/guides/dns-txt-verification.md): A DNS TXT record proves you control a domain because only someone with access to its DNS settings can publish it. Add the exact value a service gives you as a TXT record at the name it asks for, wait for the record's TTL to pass, then check it with a lookup like the one on this page. The tool queries a public DNS resolver from your browser and labels the verification records it recognizes. - [Canonicalize JSON (RFC 8785) and hash it](https://upvera.tech/guides/json-canonicalization.md): To hash JSON reliably, first turn it into one canonical form: sort object keys, remove whitespace between tokens, and write numbers and strings exactly as the JSON Canonicalization Scheme (RFC 8785) defines. Then hash the UTF-8 bytes of that form with SHA-256. The tool on this page does both in your browser and shows the exact bytes it hashed. - [Hide small groups in a published table (k-anonymity)](https://upvera.tech/guides/k-anonymity-suppression.md): Before you publish counts about people, hide every cell smaller than a threshold k, often 5, so no number describes a group small enough to point at someone. Then hide at least one more cell in any row or column where a published total would let the hidden one be worked out by subtraction. The tool on this page applies both steps to a table you can edit. - [What is a pairwise identifier in OpenID Connect?](https://upvera.tech/guides/pairwise-identifiers.md): A pairwise identifier is a sub value that an OpenID Connect provider computes separately for each sector, usually each relying party's domain, so the same person gets a stable but different ID at every site. It is defined in OpenID Connect Core 1.0, section 8, and it stops two sites from linking their records on the ID alone. A provider lists it in subject_types_supported, and a client can ask for it with subject_type=pairwise when it registers. - [How to tell a person from a bot without asking who they are](https://upvera.tech/guides/person-not-bot-without-identity.md): You can make fake accounts expensive without collecting identity by tying each account to keys held on a person's device, ideally ones the platform can attest belong to a genuine app on a genuine device. Passkeys, app device keys, Apple App Attest, Google Play Integrity and Privacy Pass tokens each prove something narrow, and none proves that one person has only one account. Report which signals a sign-in met, as a tier, and let each site set its own bar. - [Make rounded numbers add up to the total](https://upvera.tech/guides/rounded-numbers-add-up.md): Rounded parts often miss their rounded total, because each part's rounding error is thrown away on its own. To make them agree, either give the missing units to the parts with the largest remainders (the largest remainder method), or round a running total and show the differences, so the lines telescope to the total. The tool below shows both on a real score receipt, computed in whole units with no floating point. - [How to show startup traction without revealing your numbers](https://upvera.tech/guides/show-traction-without-numbers.md): Show evidence that a system you don't control produced, not figures you type. Give revenue as a band read through a read-only connection, show a dated release history in which commits, builds and store versions confirm each other, and prove that you own every source you point to. - [How to timestamp a file with OpenTimestamps](https://upvera.tech/guides/timestamp-a-file-opentimestamps.md): Install the OpenTimestamps client, run ots stamp on the file, and keep the small .ots file it writes next to the original. Only a digest of the file leaves your machine, sent to public calendar servers that anchor it in a Bitcoin block within a few hours. Run ots upgrade after that, so the proof carries the full path and no longer depends on the calendars. - [How to verify a hash chain of daily records](https://upvera.tech/guides/verify-hash-chain.md): A hash chain links each record to the one before it by storing the previous record's digest. To verify it, start from the first record you trust, compute each record's digest in order, and check that the next record's "previous" field equals it. If any record was changed, the link to the next record breaks, and hiding that would mean rewriting every record after it. The runner on this page does this against a real public chain in your browser. - [Verify a Merkle inclusion proof (RFC 9162)](https://upvera.tech/guides/verify-merkle-inclusion-proof.md): A Merkle inclusion proof shows that one record is inside a log without downloading the log. You hash the record into a leaf, combine it with each sibling hash in the proof, on the side that the leaf's index and the tree size dictate, and compare the result with a root you already trust. The tool below runs this check in your browser on a real entry of the Sigstore transparency log, or on a proof you paste. - [How to verify an OpenTimestamps proof](https://upvera.tech/guides/verify-opentimestamps.md): To verify an OpenTimestamps proof, keep the original file next to its .ots file and run ots verify with the official client. When the proof is complete, the client names a Bitcoin block whose time shows that the file's exact bytes existed by then. A full check needs a Bitcoin Core node the client can reach, and a pruned node is enough; without one you can still inspect the proof with ots info or use the web verifier at opentimestamps.org. ## Research - [An AI that never sees the number](https://upvera.tech/research/an-ai-that-never-sees-the-number.md): Upvera Upi is the AI assistant members meet on Upvera; it runs Anthropic's Claude models and keeps platform numbers, publishing and UPV out of the model's reach. - [Kestrel: measure before you fix](https://upvera.tech/research/kestrel-measure-before-you-fix.md): Upvera improves the speed of its app through Kestrel, Upvera's performance program, which measures every screen before changing it and accepts a speed fix only when a before-and-after count shows that it worked. - [Upvera Prism: learning only from people](https://upvera.tech/research/prism-learning-only-from-people.md): Upvera Prism is the recommendation engine behind Discover and Home that learns what a person cares about only from what people do on Upvera, says why each post appears and can be reset by that person at any time. - [Roots, not numbers](https://upvera.tech/research/roots-not-numbers.md): Upvera publishes its proof to show integrity without showing volume: each day file commits to every block sealed that day through a single root, and no public file carries a count, a name or a single private action. - [Rules released like software](https://upvera.tech/research/rules-released-like-software.md): Upvera releases every rule that moves UPV, computes Upvera Value, limits disclosure or runs the watcher as a versioned, hashed entry in one append-only registry, so every UPV movement, receipt and value can be traced to the rule and build that produced it. - [Seen: matching words to the work](https://upvera.tech/research/seen-matching-words-to-the-work.md): Upvera stamps a founder's post Seen when the change the post describes can be found in the founder's own verified site, repository or App Store listing, with a receipt that names the claim, the trace and the moment. - [The Eye: observing a product with rules, not a model](https://upvera.tech/research/the-eye-rules-not-a-model.md): Upvera observes a startup's own product with the Eye, a deterministic observer that visits only a site and a store listing whose ownership is verified and records, as integers and hashes, whether the product is up, what stage it has reached and whether a new version shipped. ## Release notes - [Sign in with Upvera](https://upvera.tech/releases/oidc.md): An OpenID Connect provider that tells a site how strongly the person signing in is verified, under an identifier made for that site alone. - [Day roots go public](https://upvera.tech/releases/roots-published.md): The first day roots land on GitHub with OpenTimestamps proofs. Anyone can check the chain. - [Value Engine 3.0](https://upvera.tech/releases/value-engine-3.md): The deterministic engine becomes the live rule after its shadow run. ## Record and tools - [Glossary](https://upvera.tech/glossary.md): Short definitions of the terms behind Upvera's public record: day root, genesis, minute block, inclusion proof, rule registry, receipt, shadow run, pairwise identifier, k-anonymity and more. - [Guides and tools](https://upvera.tech/guides.md): Practical guides and free in-browser tools: verify a Merkle inclusion proof, make rounded numbers add up, canonicalize JSON and hash it, check a domain's TXT records, hide small groups in a table, timestamp a file and show traction without revealing your numbers. - [Releases](https://upvera.tech/releases.md): Every rule version behind Upvera, fingerprinted and chained, and every system milestone, dated to the minute. 54 rule versions since 2026-10-09. - [Research](https://upvera.tech/research.md): Upvera Technology's numbered reports: five system reports on the Proof Engine, Value Engine, Day Roots, Upvera ID and Trust Signals, and research notes on rules, performance, AI and personalization. - [Verify](https://upvera.tech/verify.md): Open verification tools for Upvera: recompute the public day root chain and the rule registry in your browser, check that a value receipt adds up, run the verifier offline, and prove your own record is inside a sealed day. - [Day roots on GitHub](https://github.com/upvera-co/ledger-roots): one root per day since 2026-10-13, timestamped with OpenTimestamps. - [Releases feed (Atom)](https://upvera.tech/releases/feed.xml) - [Research feed (Atom)](https://upvera.tech/research/feed.xml) ## Upvera - [upvera.co](https://upvera.co): the product - [app.upvera.co](https://app.upvera.co): Upvera on the web - [upvera.dev](https://upvera.dev/llms.txt): developer documentation (MCP, Sign in with Upvera, Value API)