Attest connector privacy notice
Last updated November 2, 2026
This notice explains how DataHubz LLC handles information when you connect Attest to ChatGPT, Claude or another app that uses the Model Context Protocol (the “Attest connector”, at https://attest.datahubz.com/mcp). It covers what is collected, every tool's inputs and outputs, why it is used, who receives it, how long it is kept, and your controls. It supplements the DataHubz Privacy Policy, which covers the rest of Attest.
What the connector never receives
- The contents of your documents. They are encrypted in the sender's browser and Attest stores only ciphertext it can't read, so no tool returns a document.
- Your encryption keys, passkeys or recovery phrase. No app can sign for you: every signer signs in Attest with their own passkey.
- Your conversations with the assistant. Attest receives only the tool requests the assistant sends, described below.
- Anything from an agreement prepared with Attest for Gmail (see below).
Information we collect
When you connect. You sign in to Attest and approve the app on Attest's consent page, which shows the app's name, the address it returns to and the permissions it asks for: Check records, Read your records and Act on your records. Attest records the app's registration (the name it gives itself, its return addresses, optional website, software identifier and version, and a hash of its client secret if it has one) and your connection (your account, the app, the permissions you allowed, when you connected and when it was last used). Tokens and authorization codes are stored only as SHA-256 hashes.
When the assistant uses a tool. The table lists the nine tools, what the app sends (inputs), what Attest returns (outputs) and what Attest keeps. An app can use only the tools its permissions allow.
| Tool and permission | Inputs (from the app) | Outputs (to the app) | What Attest keeps |
|---|---|---|---|
verify_recordCheck records | One identifier: an agreement ID, a stamp code (ATT-XXXX-XXXX), a receipt ID, a proof ID or a SHA-256 fingerprint. | The public result anyone sees on Attest's verify page: for a public agreement, its title, file name, fingerprint, status, signers' names, signing times, whether each passkey signature is valid and its blockchain anchor; a private agreement is reported only as private. For a receipt, its fingerprint, kind, claim, time and anchor. For a Share proof, its statement, the email addresses it reveals, the completion date and whether it is valid. | Nothing. The identifier isn't saved. |
list_agreementsRead your records | Optional filters: status, your part (sender or signer), only those waiting for your signature, page size and page cursor. | Your agreements: ID, title, status, dates, the sender's email address, signers' names, email addresses, statuses and signing times, whose turn it is, certificate link and blockchain anchor. | Nothing new. |
get_agreementRead your records | An agreement ID, and a cursor to read more of its audit trail. | The same details for one agreement you are a party to, plus the note to signers, the document's file name and fingerprint, the signed copy's fingerprint, the reason it was withdrawn (if it was), the audit trail up to completion (each step, its time and the email address of the person who took it) and the Share proofs you made about it. | Nothing new. |
list_receiptsRead your records | Optional filters: kind, a search text (claim, receipt ID or start of a fingerprint), page size and page cursor. | Your receipts: ID, kind, fingerprint, claim, status, times, anchor and verification link. | Nothing new. |
get_accountRead your records | Nothing. | Your account's email address, plan, plan usage, whether your signing key is set up, the permissions the app has and, if your plan comes from an organization, its name. | Nothing new. |
remind_signersAct on your records | The ID of an agreement you sent. | The email addresses that were reminded, and those that weren't (for example, reminded in the last 24 hours). | The time of each reminder, in the agreement's records. The reminder email goes to the signers whose turn it is. |
prepare_agreementAct on your records | A title, signers' email addresses and names, the signing order, whether you sign too, an optional note to signers and an optional last day to sign. | The prepared details and a link to Attest's New agreement form, filled in. | The prepared details, privately in your account, for 72 hours. Nothing is sent to anyone. |
record_receiptAct on your records | A SHA-256 fingerprint, or a short text for Attest to fingerprint; the kind of content; an optional claim. | The new receipt: ID, fingerprint, kind, claim, status, verification link and the records left this month. | The receipt (fingerprint, kind, claim, time). A text is never stored: only its fingerprint. The fingerprint is anchored on the Base public blockchain. |
share_proofAct on your records | A completed agreement you signed and, optionally, a co-signer's email address to reveal. | The proof's public link, its statement, what the people you share it with see and never see, and its zkVerify status. | The zero-knowledge proof, its statement and the email addresses it reveals. Its public inputs, which are cryptographic values, go to the zkVerify network. |
Results come from your own records, except verify_record, which returns what anyone can see. Your records include other people's information: the names and email addresses of the sender and signers of agreements you are a party to, and the email addresses a Share proof reveals. That information appears in results too.
Security records. Short-lived request counters that limit request rates (per connection, account and API key, and per IP address for failed or unrecognized requests, new registrations, the consent page and public verification), and a one-time identifier of each submitted consent form so the same approval can't be used twice.
How we use it
Only to provide the connector and keep it secure:
- to authenticate the apps you connect and act only within the permissions you allowed;
- to answer each tool request, and to carry out the actions you ask for (a reminder email, a prepared form, a receipt, a Share proof);
- to show you your connected apps and when they were last used;
- to limit request rates, prevent abuse, and end a connection when a used code or refresh token is presented again.
We don't sell this information, use it for advertising, or use it to develop or train AI or machine learning models. Attest itself sends no information to any AI service.
Who receives it
- The app you connected and its provider (for example, OpenAI for ChatGPT or Anthropic for Claude) receive the tool outputs above, only when your assistant requests them. The provider handles them under its own terms and privacy policy, which DataHubz doesn't control.
- The people you act on: signers you remind receive the reminder email, and anyone you give a Share proof's link to can see what that proof reveals.
- Our service providers, only to run Attest: Vercel (hosting), Neon (database), Resend (email delivery), Cloudflare (storage of public cryptographic files that contain no personal data), and the Kurier relayer and the zkVerify network (proof verification).
- The Base public blockchain receives only fingerprints (hashes and Merkle roots), never names, email addresses or content. Records anchored before October 24, 2026 are on the Horizen network. Information on public blockchains is permanent.
- Authorities, when the law requires it.
Agreements prepared from Gmail
An agreement prepared with Attest for Gmail is kept out of the connector: its title, sender and recipients, and the receipts that name it, appear only in Attest and in the Gmail add-on, never in an AI assistant or any other connected app, and its certificate stays private. The Gmail privacy notice explains it.
How long we keep it
- Access tokens expire after one hour. Refresh tokens expire after 30 days and are replaced on every use. Token records are deleted 31 days after they expire.
- Authorization codes work once, for five minutes, and are deleted a day after they expire. An approval on the consent page expires after ten minutes.
- A prepared agreement works for 72 hours, and is deleted when you create the agreement from it or, otherwise, after it expires. You can have up to 50 open.
- Request counters and consent-form identifiers are deleted after two days.
- A connection lasts until you disconnect the app, sign out of Attest, or the app goes 30 days without refreshing its tokens. You can have up to 50; connecting another ends the one used least recently. An ended connection's record (the app, the permissions and the dates) is kept until your account is deleted.
- Receipts, reminders and Share proofs are part of your records and are kept as long as your account, so they stay verifiable, unless you ask us to delete them. Fingerprints on public blockchains can't be removed, but they don't identify you on their own.
- When your account is deleted, its connections, tokens, pending codes and prepared agreements are deleted with it. An app registration no one ever allowed is deleted 30 days after the app last registered.
Your choices and controls
- Nothing is shared until you choose Allow. On the consent page you can untick Read your records or Act on your records; Check records uses only public information.
- Actions that send email, create a public record or reveal information (remind_signers, record_receipt, share_proof) are marked as such, so your assistant asks you to confirm them.
- Security in your Attest dashboard lists every connected app with its permissions and last use. Disconnect ends its access and revokes its tokens at once.
- Signing out of Attest ends your sessions on every device and disconnects every app.
- Removing the connector in your assistant stops the assistant from using it; to make sure its tokens stop working too, disconnect it on the Security page.
- To access, correct or delete your information or your account, write to contact@datahubz.com.
How we protect it
- OAuth 2.1 with PKCE, exact redirect addresses, single-use authorization codes, rotating refresh tokens, and tokens stored only as SHA-256 hashes.
- HTTPS only, with HTTP Strict Transport Security. The database is encrypted at rest (AES-256, by Neon).
- Text people typed (titles, notes, names, claims) is marked in every result as untrusted input, so an assistant can tell it from what Attest says.
- Only authorized DataHubz personnel can reach production systems. Report a security issue to contact@datahubz.com, as described in our security policy.
Children
Attest is for people 18 and older, as our terms of service require, and we don't knowingly collect information from children.
Changes and contact
When the connector's tools, inputs or outputs change, we update this notice and its date first. Questions and requests: DataHubz LLC, contact@datahubz.com, or datahubz.com/contact.