← All work

Transcripts U.S.

Attorneys receive deposition transcripts that even the marketplace cannot read

Transcripts U.S. sells access to deposition transcripts that court reporting agencies hold. We added PIN protected encryption to its live marketplace, so payment and audit still run through the platform but only the paying attorney can open the file.

Government, Legal & DefenseLegal transcript marketplaceAI added to a live product

After payment the agency enters its PIN to release the encrypted transcript.

The challenge

Transcripts are confidential legal records, and the client required that platform admins could never open them, while delivery still had to be paid for, tracked and released by the agency.

What we did

Key pairs created in each user's browser and locked by a PIN, a content key per transcript, and release in the agency's browser after payment, inside the existing request flow.

The outcome

The platform delivers transcripts its own admins cannot open, a requirement the client checked off before the pilot, with payment, release and audit still on the platform.

Admin access to transcripts
None, by design
File on the platform during discovery
None, until a paid request is released
Decrypts in
The paying attorney's browser only
Kept on the platform
Stripe payment, release and audit per request

The starting point

Transcripts U.S. runs a two sided marketplace where attorneys request, pay for and download deposition transcripts held by court reporting agencies. Requests, Stripe payment, fulfillment and delivery already ran through the platform, and attorneys now discover transcripts through title page details alone.

What had to change

Transcripts are confidential legal records, and the client's own checklist required that platform admins could never open their contents. Delivery still had to be paid for, tracked and released by the agency.

What could not break

  • Platform admins can never open a transcript's contents
  • Release and download happen only after payment
  • The agency stays the one who releases each transcript
  • All fulfillment stays inside the platform, tracked by Request ID
  • A decrypted transcript never passes through the platform's servers

The calls we made

We took the operator out of the trust chain while keeping the sale, the release and the audit trail inside the platform.

  1. 01

    Keys created and locked in the browser

    Each user sets a 4 digit PIN, and their browser creates a key pair and encrypts the private key with that PIN before it leaves the device, so the platform stores only encrypted private keys and never the PIN.

    Ruled out

    A platform held master key in a cloud key service, which would still let the operator decrypt transcripts.

  2. 02

    No file on the platform until release

    During discovery attorneys see only title page details, so the transcript itself first reaches the platform when the agency releases a paid request, already encrypted with its own content key.

    Ruled out

    Having agencies upload transcripts at the start, which would store them on the platform through discovery, even encrypted.

  3. 03

    The agency stays the release authority

    The agency enters its PIN to release each paid request, and its browser locks the content key so only the paying attorney's private key can open it.

    Ruled out

    Automatic release on payment, which would mean storing the agency's PIN or private key and break the design.

  4. 04

    Keep payment and audit on the platform

    Encryption changes who can read the file, not how it is sold, so the Request ID, Stripe checkout at the agency's price and audit events stay where they were.

How the system fits together

PINPINencrypted PDF,keyrequest,paymentstoresstorescheckoutencrypted copyCourt reportingagenciesRelease paid requests byPINAttorneysRequest, pay, then open byPINAgency browserEncrypts the file, locksits key for the attorneyAttorney browserDecrypts and shows thetranscript locallyServerless backendRequest ID, releasestatus, audit eventsEncryptedtranscriptsStored encrypted,unreadable to adminsEncrypted keysPrivate keys locked byeach user's PINStripeCheckout at the agency'sprice
PeopleBuilt by DaticsClient's existing systemData storeOutside serviceKeys are created and unlocked only in users' browsers, so the platform stores encrypted files and encrypted keys and never sees a readable transcript.

What we built

Decryption in the attorney's browser

The attorney enters their PIN, and the transcript decrypts and displays in their browser, while every step stays recorded against the Request ID.

The attorney's request history records every step under one Request ID, from search and payment to the agency's release and the download.
02

PIN protected key pairs

Every user sets a 4 digit PIN at onboarding, and the browser creates a public and private key pair and encrypts the private key with that PIN before it leaves the device.

03

A content key per transcript

At release, the agency's browser generates a random content key, encrypts the transcript with it and locks that key with the paying attorney's public key.

04

Release only after payment

Release opens only once the request is paid at the agency's price, and the agency confirms it with its PIN, so the readable file and key never reach the server.

05

An honest PIN warning

Because the platform never holds a PIN, onboarding tells agencies and attorneys plainly that a lost PIN can mean lost access to their encrypted transcripts.

How it works

Discover

Attorneys find a transcript through title page details while the file stays with the agency.

Pay

The agency approves and prices the request, and the attorney pays through Stripe.

Release

The agency enters its PIN, and its browser encrypts the transcript and locks its key for the attorney.

Open

The attorney enters their PIN, and the transcript decrypts only in their browser.

A closer look

What the platform stores for one released request (sample values)Sample data
Request ID            TUS-000007
Status                Released after payment
During discovery      title page fields only, no file
Transcript            encrypted in the agency's browser with its own content key
Content key           locked with the paying attorney's public key
Agency private key    encrypted with the agency's PIN
Attorney private key  encrypted with the attorney's PIN
PINs                  never stored
Payment               Stripe checkout at the agency's price
Readable copy         none on the platform's servers

What changed

The marketplace now delivers transcripts that its own admins cannot open, a requirement the client checked off its list before the pilot. Payment, release and audit still run through the platform, under one Request ID per request.

None to transcript contents
Admin access
Admin access requirement checked off
Client checklist

Under the hood

Datics role
AI added to a live product
Encryption
A public and private key pair per user, a content encryption key per transcript, and private keys encrypted with a 4 digit PIN in the browser.
Data boundary
The platform stores only encrypted files, encrypted private keys and locked content keys; PINs are never stored and decrypted transcripts never pass through its servers.
Deployment
Serverless AWS with Lambda, API Gateway, Cognito, S3 and SQS, defined in AWS CDK, with development and production in separate AWS regions.
Payments and audit
Stripe checkout at the agency confirmed price, and audit events queued through SQS against each Request ID.

Cloud and infrastructure

AWS LambdaAmazon CognitoAmazon S3Amazon SQSAWS CDK

Apps and APIs

Stripe

Also in the stack

Angular 16Browser key encryption

How it shipped

  1. A requirement on the checklist

    The client's checklist required release and download only after payment, with platform admins unable to open transcript contents, and asked us how to move files from agency to attorney without admin access.

  2. Design and review

    We set out the PIN, key pair and content key design in the technical implementation document, and weighed alternatives such as a platform held key and automatic release against it.

  3. Built into the release flow

    Encryption joined the existing Request ID, Stripe checkout and release steps, with a PIN for every user at onboarding and release tied to the agency's PIN.

  4. Demos and pilot

    Recorded attorney, agency and admin walkthroughs followed, and the client checked the admin access requirement off its list before the pilot.

Our answer to their question

The client asked for our recommendation on secure agency to attorney transfer without admin access, and this design was the answer, built against its own checklist.

A document their advisors could read

When the client's advisors asked for a clear technical document, we wrote up what is built, the AWS architecture and this encryption design, step by step.

What this unlocked

An enterprise court reporting firm asked that agencies keep custody of the file itself, so the next step explores delivery where the agency remains the custodian and the platform keeps metadata, payment and audit, configurable per agency.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review