πŸ“–
MetaPoll | Docs
  • Introducing MetaPoll
  • Getting Started
    • Take the MetaPoll tour!
    • FAQs
    • Quickstart Mission
  • MetaPoll User Guide
    • Signing In
    • Adding and Removing DAOs
    • Browsing MetaPolls
      • Filtering MetaPolls by DAO
      • Search and Other Filters
      • Main card
    • Viewing MetaPoll Results
      • Snapshots
      • Options
      • Child Options, Layers, and Navigation
    • Voting
      • Ranked and Unranked Options
      • Ranking and Unranking Methods
      • Casting Your Vote
      • Viewing Vote History
    • Eligible Tokens and Vote Calculation
    • Vote Decay
    • Graduation
  • Authoring MetaPolls
    • Basics of Creating MetaPolls
      • Creating a new MetaPoll
      • Setting up the MetaPoll
      • Creating Options
      • Publishing a MetaPoll
      • Managing your MetaPolls
    • Working with MPTS format
    • Option space design
      • Option Naming Styles: The Abstraction-Precision Trade-off
      • State Change Loop
      • Utility Formats
    • Example MetaPoll types
      • 1. Control Surfaces for Automated Systems
      • 2. Information Sources for Decision-Making
      • 3. Proposal Temperature Checks
      • 4. Proposal Election and Expectation Management
      • 5. Representative Guidance Systems
  • Hypothetical MetaPolls
  • Advanced Topics
    • Decision Spaces
    • Snapshot Data Structure
    • VCIP - Voter Compute Integrity Proof
    • VDIP - Voter Data Integrity Proof
    • Arweave Perma Storage
    • Verkle Trees
    • ZKsnarks
  • Appendix
    • Links
    • Glossary
Powered by GitBook
On this page
  • Introduction
  • Why use MPTS?
  • MPTS definition and structure
  • Option tree example:
  • Using MPTS:
  • Using MPTS with AI:
  1. Authoring MetaPolls

Working with MPTS format

Introduction

To allow MetaPoll authors greater flexibility with how they create MetaPolls, we’ve created a format for the option tree of a MetaPoll that can be easily copy and pasted into and out of text editors. It’s called "MPTS" which stands for β€œMetaPoll TreeSpec”, it’s a minimalistic format used to create or modify a portable MetaPoll option tree within any basic text editor.

The format works like a bridge between flexible text editing and the structured data MetaPoll needs. You write your option tree using MPTS syntax in your preferred editor, and when ready, paste the MPTS formatted text into the app for a quick import.

Why use MPTS?

Creating polls in the MetaPoll app interface isn't always ideal. In some cases it makes more sense to draft them in collaborative documents where you can:

  • Receive feedback and comments from others

  • Get assistance from AI tools

  • Enable portability between environments (local to production)

  • Share and fork MetaPolls within communities

TLDR, using MPTS allows collaboration, use of AI tools, and saves you time. If you're going to author medium to large size MetaPolls then using MPTS is highly recommended. Best part is that MPTS is extremely simple to learn.


MPTS definition and structure

The MPTS format begins with the title of the MetaPoll:

MetaPoll title is a string written after β€œtitle” inside a set of [ ] brackets.

Example: title [name of metapoll]

Options appear after the title between to [ ] brackets with an implied hierarchical nested structure:

  • Each option exists on it’s own line

  • The option name comes after the = symbol followed by one space, example: = option_name

  • Root options are preceded by a single = symbol

  • Each nested layer adds an additional = symbol

  • The line order of each option indicates parent/child relationships. Example: the first β€œ= Option A” with a single = symbol above β€œ== Option A1” implies that Option A1 is a child of Option A.

Option tree example:

options [
= Option A
== Option A1
=== Option A1A
=== Option A1B
=== Option A1C
== Option A2
= Option B
= Option C
== Option C1
== Option C2
== Option C3
]

True statements about the option tree code example just above ^^

  1. Option A1 and A2 are both children of Option A.

  2. Options A B C are siblings which are Layer 1 options (also known as root layer).

  3. Option A1A, A1B, and A1C are Layer 3 options that are children of option A1 which is a Layer 2 option.

  4. Option C1, C2, C3 are Layer 2 options and children of Option C which is a Layer 1 option.

Using MPTS:

Now that we know the structure, let's make it more concrete with an example of what a short MPTS MetaPoll might actually look like:

title [Favorite animal]
options [
= Dog
== Golden retriever
=== Long hair
=== Short hair
== Beagle
=== British
=== American
= Cat
== Persian 
== Mainecoon
== Tabby
]

As you can see, there are two "root level" options: = Dog and = Cat . Next, nested inside Dog in the 2nd "Layer" are two more options: == Golden Retriever and == Beagle , and within == Golden Retriever in the 3rd "Layer" are two more options: === Long hair and === Short hair variants.

MPTS allows you to author MetaPolls in any basic or advanced text editor, and copy and paste them directly into the MetaPoll app in seconds.

Looking forward, we will continue to develop MPTS with feedback from the community. One thing we'd like to do in the future is to create "Templates" that Authors can distribute to the community, potentially with financial rewards.

Using MPTS with AI:

AI can be a powerful tool to author new MetaPolls with. For your convenience, we've put together a generic prompt that you can copy/paste into an LLM to help you output valid MPTS formatted text.

# MetaPoll TreeSpec (MPTS) Format Enforcer

You will act as a MetaPoll TreeSpec (MPTS) formatter. 
Your task is to strictly convert my inputs into valid MPTS format or 
validate existing MPTS format.

## FORMAT RULES (CRITICAL)


The MPTS format must follow these exact specifications with no deviation:


1. Begin with "title [" followed by the poll title and closing bracket "]"
2. Next line must contain "options ["
3. Option hierarchy uses = symbols to indicate nesting level:
   - Root (Level 1) options use a single = symbol: "= Option Name"
   - Each nested child adds one additional = symbol
   - Children MUST follow their parent immediately
   - Siblings at the same level use the same number of = symbols
4. Final line must be a single closing bracket "]"


## FORMAT REQUIREMENTS


- Each option MUST be on its own line
- One single space between = symbols and option text
- NO bullets, numbers, or other formatting
- Option names follow immediately after the = symbols and a single space
- Parent-child relationships are determined by line order and = count
- EXACT character precision is required - any deviation breaks the format


## EXAMPLE OF VALID MPTS FORMAT


```
title [Favorite animal]
options [
= Dog
== Golden retriever
=== Long hair
=== Short hair
== Beagle
=== British
=== American
= Cat
== Persian 
== Mainecoon
== Tabby
]
```


If I provide content needing conversion to MPTS, format it precisely. 
If I provide MPTS to validate, check it against these strict rules and 
correct any errors. Always maintain exact spacing, line breaks, and 
character placement as shown in the example.

Join the community!


PS, here were some considerations when designing MPTS:

We believe a successful format for our community is extremely simple, quick to learn even for non-developers, and can be copied/pasted in most text editors or LLMs without formatting issues or lost symbols (avoiding bullets and numbered lists).

  1. Minimal Syntax: Easy to learn quickly with keyboard-friendly characters

  2. Non-Developer Friendly: Readable by users without technical backgrounds

  3. No Rank Ordering: Option ranking not needed in creation mode

  4. AI Compatible: Format should be machine-readable and writable

  5. Visual Simplicity: Clean and straightforward presentation

PreviousManaging your MetaPollsNextOption space design

Last updated 3 days ago

You can also share your MetaPolls in this format on the web with the This could be helpful for spreading standardized MetaPolls using best practices, or furthering research into developing new ways of building effective MetaPolls.

We hope you found this guide on using MPTS helpful. We extend a warm invitation to join our encouraging and friendly Poll Creator community on Discord here:

MetaPoll poll creator community.
https://discord.com/invite/KMfUndbgpr