AI agents: Logbook can be used programmatically. Start at https://logbook.zone/llms.txt. Remote MCP server: https://logbook.zone/mcp. Read-only REST API: https://logbook.zone/api/v1. Local MCP server: npx -y @logbookprotocol/mcp.

Logbook Beta on Sui Testnet. Learn more →
Documentation

Learn Logbook

Everything you need to create blockchain-verified surveys, understand the technology, and get the most out of Logbook.

DocsViewing Results
9 min read

Viewing Campaign Results

See how responses are aggregated and displayed.

#Results Tab

Every campaign has a Results tab showing aggregated data:

#For Choice Questions

  • Vote counts: How many people selected each option
  • Percentages: What proportion chose each answer
  • Visual bars: Graphical representation of distribution

#For Text Questions

  • Response count: Total number of text responses
  • Response list: Individual text answers (click to expand)

#Response Details

The Responses tab is visible to everyone and shows:

  • Timestamps: When each response was submitted
  • Respondent addresses: Blockchain address of each participant
  • Transaction IDs: Links to verify on block explorer

#Real-Time Updates

Results of active campaigns refresh automatically:

  • The page re-reads the blockchain at a regular interval (you can change it in the settings)
  • Vote counts and charts update without a page reload
  • Use the refresh button next to "Updated" to reload immediately

#Results of Private Campaigns

When answers are not visible to everyone, they are stored encrypted and the results are tallied in your browser from the answers you are allowed to decrypt:

  • Everyone with access: open the campaign with the password or an allowlisted address and you see everything; on a campaign for the members of a group, its participants and its creator do
  • Voters only: results appear after you have responded
  • Only creator: the creator sees everything; participants see only their own answer
  • After the end date: until the campaign ends everyone, the creator included, sees only their own answer; afterwards everyone with access (on a password campaign, everyone with the password) sees all results
  • Address lists: an address removed from the list cannot read answers submitted after its removal, unless it has already responded to a "Voters only" campaign. One that responded keeps reading its own answer (and the answers sent before its removal, which it could read then)
In each of these, a reader sees every answer next to the address that gave it, on the Responses tab.

If you are not signed in, or your wallet has not signed the decryption request yet, the Results tab shows a banner with a "Sign in" or "Sign & decrypt" button.

#Counted, Locked and Invalid Responses

A tally counts only answers that could be read and are valid. The results say how many responses are left out, and why:

  • Locked: your account may not read these answers (see above)
  • Failed: they could not be decrypted right now, for example because a key server did not answer; try again later
  • Invalid: encrypted answers that break the answer rules (for example an option that does not exist), that were copied from another respondent, or that no reader could ever decrypt (for example, because they were encrypted for other key servers than the ones Logbook uses). The contract checks public answers when they are submitted; encrypted ones can only be checked after decryption, so invalid ones are marked as invalid and never counted
A tally is complete only when no response is locked, failed or invalid. For campaigns with public answers the tally is also compared with the counts the smart contract keeps, so a difference would show.

#On-Chain Verification

Every response can be verified independently:

  1. 1Note the transaction ID from the response
  2. 2Visit a Sui block explorer (like Suiscan)
  3. 3Search for the transaction ID
  4. 4View the complete transaction details
This proves:
  • The response was actually submitted
  • The exact timestamp of submission
  • The blockchain address that submitted it
  • The transaction cannot be modified

#Campaign Lifecycle

#Active Campaigns

  • Accept new responses
  • Show live results
  • End date in the future

#Ended Campaigns

  • No longer accept responses
  • Cannot be edited or reopened: questions, documents and end date are fixed
  • Results are final
  • Data remains permanently on-chain

#Results Certificate

The creator can issue a results certificate from the Results tab: a JSON snapshot of the questions, the tally and every response with its transaction, meant for people who do not use Logbook, such as an auditor or the minutes of a meeting.

When the answers are not public, the certificate lists who responded and when, but not what each of them answered. Including every respondent's answers ("full") is an explicit choice, because everyone who can read the certificate then sees who answered what. A "totals only" certificate lists free texts and "Other" answers sorted, not in the order of the responses, so their position says nothing about who wrote which.

  • The file is stored on Walrus and its SHA-256 is recorded in the campaign on-chain, so it cannot be altered afterwards without detection
  • Every certificate lists the address of every respondent with the time of the response, "totals only" included. A "full" certificate is one file that says which address answered what. Walrus is a public storage network: anyone can fetch the stored file (ciphertext, for a private campaign), and Logbook cannot delete it there before its storage period ends. The dialog says so before you issue one
  • Every line in it can be checked against the blockchain: each response lists its on-chain object and transaction
  • It states how many responses were left out of the tally (locked, failed or invalid) and whether it was issued before the campaign ended
  • It names its format (logbook-certificate/v2) and its detail: tally (totals only, without the respondents' answers), or full
  • For private campaigns the certificate is encrypted for the same audience as the answers. On address-list campaigns where everyone with access reads the answers, it is encrypted for the current access epoch (see Smart Contract): an address removed from the list cannot read a certificate issued after its removal, and AI reports follow the same rule
  • "Issue again" replaces it, for example after the campaign has ended
  • The file is kept for at least 50 days (Testnet beta); the on-chain record is permanent, and a downloaded copy stays verifiable after that. See Data Storage
Anyone who can read the answers can download the certificate from the Results tab.

#Verifying the document that was voted on

Every document of a campaign has a "Verification link". On the verification page anyone can choose a file from their computer and see whether it is the one the campaign committed to. The file is hashed in the browser and compared with the blockchain; nothing is uploaded and no storage is involved. The page also says whether the commitment is already frozen (the campaign has responses) or could still be replaced by the creator.

For private campaigns the link carries the salt of that one document. It lets the holder verify a copy they were given; it does not open the file or the campaign. For a private document of the current format the page says that its size is hidden: the chain holds only the padded size of the stored file.

#Verifying a certificate

Use "Copy verification link" and send the link to anyone: an auditor, a board member, a journalist. The verification page needs no account and runs every check in the visitor's browser:

  1. 1It reads the record from the Sui blockchain: which document the campaign creator committed to, and when. Only the creator's address can make that record.
  2. 2It fetches the file (Walrus, or Logbook's cache) and compares its SHA-256 with the one on-chain. A file that does not match is never shown.
  3. 3For private campaigns the link carries the key of this one document (after the #, so it never reaches a server). The visitor decrypts the very bytes whose hash is on-chain. The key opens the certificate only, not the campaign or its answers.
  4. 4It checks every field of the certificate against what the blockchain can prove. The campaign it states must be the one on-chain: its id, network and package, its creator, participants and visibility settings, its times, and the type, options and required flag of every question (and the wording, when the campaign's text is not encrypted). The summary and the note must match the rows, the tally must add up and fit the responses it counts, and every response it lists must exist on-chain, once, with the same respondent, transaction and time. A file that is not a valid certificate shows up as a failed check.
  5. 5For campaigns with public answers it goes further: every listed response counts, and the tally is recounted from the response objects over the questions and question types stored on-chain. An inflated tally, swapped option labels, a choice question presented as text, an altered answer or a dropped response are caught.
  6. 6It checks that no response is left out. A certificate recorded after the campaign ended must list every response. An interim certificate, recorded while the campaign was still open, may leave out votes that came in between its stated issue time and its record on-chain, but only within the 30 minutes before the record; the page shows those votes as a warning. Votes after the record are only noted.
  7. 7A file received by email can be dropped on the page to check that it is byte-for-byte the committed document. This works even after the file is no longer stored anywhere, because the hash it is compared with lives on-chain.
What a certificate of a private campaign proves: the creator committed to exactly these results at that time and cannot change them later, and the results are consistent with the responses it lists. It does not let an outsider recount encrypted answers; who responded and when is public either way.

#AI Analytics

Campaign creators can use AI Analytics to get intelligent insights:

  1. 1Go to your campaign
  2. 2Click the Analytics tab
  3. 3Click Analyze Responses
The AI will analyze all responses and provide:
  • Key findings and patterns
  • Sentiment analysis for text responses
  • Actionable recommendations
Before anything is sent you are shown what goes to the AI provider (DeepSeek) and through whom, and you confirm; you can send totals only.

Learn more in the AI Analytics documentation.

#Exporting Data

Currently, you can:

  • View all responses in the app
  • Verify individual responses on-chain
  • Copy addresses and transaction IDs
Future updates will add CSV/JSON export functionality.