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.

DocsCreating Campaigns
12 min read

Creating Campaigns

A campaign is your survey, poll, or form on Logbook. Here's everything you need to know about creating one.

#Campaign Components

#Participants (who can open the campaign)

  • Anyone: Questions are stored in plaintext. Anyone with the link can read them and respond. Best for community polls.
  • With password: Questions are encrypted in your browser with a campaign key. The password is derived from that key and travels in the share link (after the #, so it never reaches a server). Only people with the password can open the campaign and respond: the smart contract checks a proof of the password with every response. As the creator you can always recover the password by opening the campaign.
  • Address list: Questions are encrypted, and the key is released only to Sui addresses you put on the list (and to you). You can add and remove addresses after publishing, in one transaction. A removed address can no longer respond or get keys as a member of the list, so it cannot read answers submitted after its removal. The campaign key it fetched while it was on the list stays valid, though: it can still read the title, the questions and the documents, also ones you change after removing it. If that matters, create a new campaign without the address. (On a "Voters only" campaign, an address that has already responded keeps reading the answers as a voter; a removed address that has responded can always read its own answer.)
  • Members of a group: Only the members of the groups you choose can respond, as they are at the moment the campaign is created. No password and no address list: people respond with the account they joined the group with. You choose among the groups you own or administer. If every chosen group is public, the title, questions and documents are plain text that everyone can read; if one of them is private, they are encrypted for the participants and you. Such a campaign cannot be edited after publishing. See Campaigns for Groups.

#Answers visible to (who can read the responses)

  • Everyone: Answers are public next to each address, and counted on-chain in real time.
  • Everyone with access: Everyone who can open the campaign sees all answers (password or address-list campaigns; on a campaign for the members of a group, the participants and you).
  • Voters only: Only people who responded (and you) can read the answers. Works for open campaigns too.
  • Only me: Only you read all answers; each participant sees their own. For feedback that only the organizer should read. It is not anonymous: you see which address wrote what.
  • After the end date: Nobody, not even you, can read the answers until the campaign ends; each participant can read their own. From the end on everyone with access reads every answer, for good: on a password campaign everyone with the password, on a campaign open to anyone, anyone. This hides the interim result, so nobody can vote by the running count. It is not a secret ballot.
In every setting the readers see each answer next to the address that gave it, and that an address responded, and when, is public and permanent. No setting keeps how an address answered from everybody. If your vote must be secret, Logbook cannot run it today. See Privacy.

Encrypted answers are protected with Seal, a threshold encryption service on Sui: key servers that Logbook does not run release decryption keys only to addresses that satisfy the rule stored in the Logbook smart contract. Every key belongs to one campaign: no other campaign, not even one with an earlier end date, can open answers sealed until the end early.

#Documents (optional)

Attach the text people are voting on: a proposal, a contract, a charter amendment, a design. Up to 5 files, 5 MB each.
  • The hash of each file becomes part of the campaign on the blockchain, in the same transaction that creates the campaign
  • With the first response, or when the campaign ends, the documents freeze together with the questions: nobody, including you, can swap the file afterwards. Everyone responded about exactly this text
  • Participants see the documents above the questions, and every download is checked against the on-chain hash first
  • For private campaigns the file is encrypted for the people who can open the campaign, and the on-chain hash is salted (SHA-256 over a fixed tag, a random 32-byte salt and the file), so outsiders cannot even test which document is being discussed. The stored file is padded and its real name, type and size are encrypted, so the chain shows neither the exact size nor the type of the file
  • Files are kept for a limited time (see Data Storage), but the hash is permanent: a copy downloaded today can be verified on the verification page years later, even when the file is no longer stored anywhere

#Title

A clear, descriptive name for your campaign. This is what participants will see first.

#Description

Optional but recommended. Explain:
  • What you're asking about
  • Why you're collecting this information
  • How the results will be used

#End Date

When should the campaign stop accepting responses? After this date:
  • No new responses can be submitted
  • Results become final and immutable
  • The campaign is marked as "Ended"

#Questions

The core of your campaign. See the Question Types section for details.

#Creating Your Campaign

#Step 1: Choose Who Can Participate and Who Sees the Answers

Two independent settings control privacy:

Participants decides who can read the questions and respond: anyone, people with the password, a list of Sui addresses, or the members of a group. A password or an address list encrypts the campaign content in your browser before it is published; so does "Members of a group" when one of the groups is private.

Answers visible to decides who can decrypt the responses: everyone (public, counted on-chain), everyone with access, voters only, only you, or nobody until the end date and everyone with access from then on.

Typical combinations
  • Community poll: Anyone + Everyone
  • Team survey by link: With password + Everyone with access
  • Feedback only you read: Anyone (or With password) + Only me
  • Vote of a DAO with the interim result hidden: Address list + After the end date
  • Members-only results: Anyone + Voters only
  • Decision of a house council or a department: Members of a group + Everyone with access

#Step 2: Basic Information

Fill in your campaign details:

  • Title (required)
  • Description (optional)
  • End date (required)

#Step 3: Add Questions

Click "Add question" for each question you want to include. For each question:

  1. 1Enter the question text
  2. 2Choose the question type
  3. 3Add answer options (for choice questions)
  4. 4Toggle required/optional

#Step 4: Review

Before deploying, review your campaign:

  • Check all questions are correct
  • Verify answer options are complete
  • Confirm the end date

#Step 5: Deploy

Click "Publish Campaign" to publish your campaign to the blockchain.

If you signed in with Google, Logbook pays the gas fee. If you use a wallet, you confirm the transaction in your wallet and pay a small gas fee (test SUI is free during beta).

How the creation is paid also decides how every later change by the creator is paid: see Editing Campaigns below.

A campaign for the members of a group is the exception: its creation is paid the way the group was created, whichever way you signed in. Logbook pays when the groups you chose were created with sponsored gas; otherwise you pay (see Who Pays in Groups).

The creation form can open pre-filled from a link, for example one composed by an AI assistant in a chat (the format is described under API & SDK). The draft travels in the part of the link after the #, which browsers never send to a server, so the questions of a private campaign and its address list stay out of server logs. A yellow notice says the draft came from a link and lists what it sets besides the wording: the number of questions, who can participate, who can read the answers and every address it puts on the address list. Review every field, then publish as usual. Nothing is created until you do. If you need to sign in first, the draft survives the sign-in. Links from before, with the draft after a ?, still open once; the page then moves the draft after the #.

#After Deployment

Once deployed, your campaign:

  • Has a unique on-chain ID
  • Can be shared via link or QR code
  • Will accept responses until the end of the selected end date
  • Shows live results
For a password campaign, the password is generated when you publish. You can find it under "Share" on the campaign page, where you can also include it in the link and QR code. It is derived from the campaign's key, so as the creator you can always recover it by signing in and opening the campaign, even without the link. Anyone who has already responded can reopen the campaign without the password too.

For an address-list campaign, the campaign page shows an "Address list" panel where you can add and remove addresses at any time; each change is saved in one transaction, paid the way the campaign was created (see Editing Campaigns).

#Editing Campaigns

Campaigns can be edited only if they have zero responses and have not ended. Once someone has responded, the campaign becomes immutable to ensure participants can trust that the questions haven't changed after they responded. Once the end date has passed, the questions, documents and end date are fixed as well: the smart contract refuses to reopen an ended campaign, because on an "After the end date" campaign the answers can be opened from then on, and extending it would let new answers be read as they come in. Move the end date while the campaign is still running if you need more time.

To edit a campaign:

  1. 1Go to your campaign page
  2. 2Click the "Edit" button (only visible if you're the creator, there are no responses and the campaign has not ended)
  3. 3Make your changes to title, description, questions, or end date
  4. 4Save changes
The participants and answer visibility settings cannot be changed after publishing. Only the address list can be updated, at any time.

A campaign for the members of a group has no "Edit" button. Its questions, documents and end date are frozen together with its participants, and the smart contract refuses every edit. To change it, delete it while nobody has responded and create it again; the new campaign counts the members as they are then.

If you edit the campaign or remove an address from its list while someone is answering, the contract refuses their submission instead of recording answers prepared for the previous version. They reload the campaign and send it again.

If your campaign already has responses, you'll need to create a new campaign instead.

#Who Pays for Changes

Every change the creator makes is paid the way the campaign was created: editing it, changing its address list, replacing its documents, publishing or removing a report or certificate, and deleting it. If Logbook paid the gas of the creation (as for Google sign-in), only Logbook can pay for these changes, and it does. If the creator paid for the creation, the creator pays for the changes, from their own SUI. The smart contract enforces this, so the storage refund always goes back to whoever paid for the storage.

The app follows the campaign, not the way you signed in: a wallet creator of a sponsored campaign signs and Logbook pays, and a Google creator of a campaign created without sponsorship needs test SUI of their own (the Account page has a "Get test SUI" button). Logbook's gas has daily limits (see API & SDK): when they are used up, changes to a sponsored campaign wait until sponsorship is available again, because they cannot be paid with your own gas.

#Deleting Campaigns

Campaigns can be deleted only if they have zero responses, also after they ended. This prevents loss of participant data.

Deleting is a change like any other by the creator, so it is paid the way the campaign was created (see Editing Campaigns above): a sponsored campaign is deleted in a transaction Logbook pays for, and one you paid for with your own gas is deleted with your own gas. The storage refund goes back to whoever paid for the storage. On an address-list campaign the list is emptied in the same transaction, so the storage of every listed address is refunded too (a list of more than 900 addresses takes one more transaction per 900).

A campaign for the members of a group is on the list of campaigns of every group it reaches. Deleting it takes it off each of those lists in the same transaction, and the dialog says so. Until it is deleted, none of those groups can be deleted.

To delete a campaign:

  1. 1Go to your campaign page
  2. 2Click the "Delete" button (only visible if you're the creator and there are no responses)
  3. 3Confirm the deletion
Warning: Deletion is permanent and cannot be undone.