EOS WPS User Guide

The EOS Worker Proposal System (WPS) is a funding mechanism for the EOS Mainnet, enabling developers and other value creators to seek funding from the EOS blockchain for their projects outside of EOS block rewards. It’s modeled closely after the DASH Budget Proposal System, which has been successfully funding projects benefiting the DASH ecosystem. It also pulls from our experience designing and maintaining the BOS Ecosystem Program. We’ve analyzed real node, developer, and token holder behaviour in both these systems over an extended period of time in order to design an improved version for the EOS Mainnet.

This decentralized voting & distribution mechanism is governed by the rules coded within the WPS smart contracts, which allows any EOS account to propose a budget for their specific project and Block Producers elected by token holders to vote on them. Each proposal that passes is paid directly from the eosio.wps account to the EOS account that proposed the work.

This guide provides an overview of the EOS WPS, including rules and frequently asked questions, and will walk you through the steps required to submit a proposal. We’ve also included a video overview and video walkthrough of the proposal submission process, which both mirror the content presented here. 

Contents

Voting periods and funding

A maximum total budget of 25,000 EOS will be made available for each 30-day voting period. The period budget and duration are settings within the WPS smart contract that can be adjusted by MSIG approval from 15 of the top 21 Block Producers. 

eosio.wps is funded from the fees accumulated in the eosio.names and eosio.ramfee accounts prior to the deployment of REX. Prior to REX, these accounts accumulated roughly 3.5 million EOS from EOS premium name auctions and RAM purchase fees. These administrative fees were voluntarily collected from token holders by the network. It’s important to note these funds do not stem from inflation or taxation as they originate from services rendered by the network for specific individuals at their request. An MSIG approval from 15 of the top 21 Block Producers will be required to move funds to eosio.wps, and this will occur on an ongoing basis. 

Any ongoing fees being collected by `eosio.names` & `eosio.ramfee` will continue to flow to REX holders and shall not be transferred to `eosio.wps`. Funds flowing into REX will not be affected by this proposal.

We’ll propose to transfer 50,000 EOS, or two periods worth, to the `eosio.wps` account upon activation of the EOS WPS system. We’ll propose a top-up of another 25,000 EOS one month ahead of each period. This gives the top 21 the flexibility to discontinue the WPS system at any time by simply not funding it.

Passing proposals

To pass a proposal, it must meet the following proposal threshold at the close of the voting period:

Proposal threshold:

  1.  A minimum of 20 net positive votes are required from eligible voters.
  2. The cumulative budget of all passing proposals cannot exceed the allocated period budget of 25,000 EOS.
    • If the cumulative budget of proposals that meet the voting threshold exceeds the allocated period budget, proposals will be awarded their requested budgets in order of voting rank only until the maximum budget is met. 

Eligible voter:

Any Block Producer who meets the 100-EOS-per-day vote pay reward threshold on the EOS Mainnet within the last 24 hours is considered an eligible voter. All eligible voters have an equal vote weight and can cast a plus 1 (+1),  minus 1 (-1), or abstain (0) vote for each proposal.

The proposal threshold, eligible voter requirements, and vote weights are all settings within the WPS smart contract that can be adjusted with an MSIG approval from 15 of the top 21 Block producers.

Proposer requirements

Any account on the EOS Mainnet can submit a draft proposal. To limit spam, a non-refundable fee of 100 EOS must be paid to eosio.wps to officially publish a proposal.

Quick reference guide

Frequently Asked Questions

Anyone with an EOS account who pays the 100 EOS proposal fee.

Block Producers on the EOS Public Network who have met the 100 EOS/day reward threshold for at least 24 hours.

Data from other WPS shows that a lot of work is required to get a proposal funded. It is up to the proposer to seek and obtain votes on the proposal. The network does not provide guidance, nor guarantee, as to how to get funded.

To limit spam so that Block Producers can focus on reviewing only serious proposals.

The fee goes into the eosio.wps account to be redistributed to passing proposals.

No, the fee is non-refundable once the proposal has been published. However, during the draft period of a proposal, the deposit of 100 EOS can be refunded.

No, if your proposal doesn’t pass in the period it was published, it is closed and not eligible for voting in the next period. If you’re publishing a proposal near the end of a period, consider waiting to publish it until the start of the next period.

On closing of the voting period, EOS will be automatically transferred to proposers whose proposals have passed.

Yes, you can request to split your payment across a maximum of 6 30-day periods, coinciding with the voting periods. But payment is subject to continued voting for each period. Votes for multi-period proposals roll over to subsequent voting periods. Payment will only be transferred during periods where the proposal meets the proposal threshold. If the threshold is not met during any period, the proposal will be cancelled and no longer eligible for voting in subsequent periods.

No, the 100 EOS fee paid to publish the proposal covers you for up to 6 periods.

No, a proposal can’t be changed after it’s been published.

No, a proposal can’t be changed after it’s been published.

Video Overview

Submitting a proposal

Sign in to EOS WPS Portal

  1. Go to https://eoswps.io
  2. Sign in with your EOS account
    1. Click “Sign in with Scatter” 
    2. Select the account you would like to use to submit the proposal from the Scatter pop-up and click “Allow”
  3. Click the “Create proposal” button at the top of the portal

Setup Proposal

Enter all of the required fields:
  1.  Proposal name serves as a unique identifier for your proposal. It won’t be displayed anywhere in the portal, but will be added as a record in the table in the WPS smart contract.
    • It must be unique
    • It must contain a minimum of 3 characters
    • It can contain a maximum of 12 characters
    • It must only contain lower-case english characters or numbers 1-5
  2. Proposal title will display to voters in the portal as the title of your proposal in the the list of active proposals and on the details page of your proposal.
    • It must contain a minimum of 3 characters
    • It can contain a maximum of 60 characters
  3. Proposal summary is a short summary of your proposal that will be displayed to voters in the portal with your proposal in the list of active proposals and on the details page of your proposal.
    • It must contain a minimum of 3 characters
    • It can contain a maximum of 150 characters
  4. Proposal category helps organize proposals according to the type of work being proposed. It will be displayed to voters in the portal with your proposal in the list of active proposals and on the details page of your proposal.
    • Select the appropriate category from the options provided in the drop-down:
      • Development
      • Marketing
      • Business Development
      • Community
      • Other
  5. Proposal budget is the amount of EOS that will be transferred to your account if your proposal passes. You can request a single payment, or up to 6 monthly payments. You can break your budget down into multiple line items to display a detailed tally of costs, or simply add one budget item containing the full cost (see sample of detailed budget below). The total budget will be displayed to voters in the portal with your proposal in the list of active proposals and the full tally will be displayed along with the total on the details page of your proposal.
    1. Click the “Add new item” button under the “Add budget items to your proposal” heading near the bottom of the page. 
    2. Enter a title for your budget line item.
    3. Enter the cost (in EOS) for your budget line item.
    4. Enter the amount of those items included in your budget.
      • The subtotal for the budget line item will reflect the cost multiplied by the amount.
    5. Select the unit type from the options provided in the drop-down:
      • Unit
      • Hour
      • Day
      • Month
      • Year
    6. Click “Save.”
    7. Repeat steps 1-6 if you have additional budget line items to add.
    8. Select the duration of payments from the options provided in the dropdown.
      • Payments can be divided equally between 1-6 months
      • The total budget will be divided by the duration of payments to determine the monthly EOS budget.
Sample Budget
Enter the optional fields, if you wish:
  1. Hero image is an optional image you can include to help illustrate or bring attention to your proposal. It will be displayed to voters in the portal with your proposal in the list of active proposals and on the details page of your proposal.
    • Enter the URL of the image you’d like to include with your proposal. 
      • Note: it is up to you to upload the image to whichever image sharing or web hosting service you choose.
  2. Video link is an optional link to a video you can include to help explain your proposal. It will be displayed to voters in the portal on the details page of your proposal.
    • Enter the URL of the video you’d like to include with your proposal. 
      • Note: it is up to you to upload the video to whichever video sharing or web hosting service you choose.
Save your draft and continue to the next step:
  1. If you’d like to save your progress before moving on to the next step, click the “Save Draft” button at the bottom of the page.
    • Click the “Allow” button in the scatter pop-up to save your progress to the blockchain. 
  2. Click the “Continue” button at the bottom of the page to move on to the next step.
    • Note: progress won’t be saved unless you click the “Save Draft” button. Progress will be lost if you don’t save your draft on the next step or complete the proposal submission process.

Provide a detailed description for your proposal

  1. Enter a detailed description in the free-form text field provided. Feel free to use the formatting options made available to help make your description stand out. The description will be displayed to voters in the portal on the details page of your proposal. 
  2. Click the “Save Draft” button at the bottom of the page to save your progress to the blockchain.
  3. Click the “Continue” button at the bottom of the page to move on to the next step.

Set up your project timeline

  1. Add a timeline for a project milestone to inform voters of when you plan to deliver specific milestones of your proposal. It will be displayed to them in the details page of your proposal. 
    1. Click the “Add new item” button.
    2. Enter a title for your milestone.
    3. Select a start date for your milestone. 
      • Select a date in the popup calendar.
      • Click the “Ok” button.
    4. Select an end date for your milestone. 
      • Select a date in the popup calendar.
      • Click the “Ok” button.
    5. Click the “Save” button.
    6. Repeat steps 1-5 if you have additional milestones to add. 
    7. Click the “Save Draft” button.

Publish proposal

Now that your draft is saved, you should be on the Drafts page of the EOS WPS portal. You can access this page at any time by clicking the Drafts button at the top of the portal. Here you can see a list of all of the draft proposals currently awaiting to be published, including the draft you just saved. Click on your proposal to go to the details page. From here you can review your proposal and have options to pay the proposal fee, edit the proposal, or delete the proposal. Before you can publish your proposal, you must pay the proposal fee. 

Pay proposal fee:
  1. Click the “Pay fee” button.
  2. Approve the transfer of 100 EOS to the eosio.wps account by clicking the “Allow” button in the Scatter pop-up window. 

Once the fee has been successfully paid, you’ll see new options to activate the proposal or refund your proposal fee. Once you activate the proposal you are no longer able to edit the proposal or refund your proposal fee. Make sure you’re happy with the proposal before moving on to the final step. 

Activate proposal:
  1. Click the “Activate” button.
  2. Read the disclaimer in the pop-up window. Your proposal can’t be edited once it’s activated.
  3. Decide if you want to activate the proposal immediately or for the next voting period. The pop-up window will display how many days remain in the voting period. Your proposal needs to pass in the voting period it’s published – so consider activating for the next voting period if the current period is nearing the end. Voting periods are 30 days. 
    • Click “Activate for current” if you want to activate your proposal for the current period.
      • If there are 5 days or less remaining in the voting period, you’ll be prevented from activating the proposal for the current period.
    • Click “Activate for next” if you want to activate your proposal for the next period.
  4. Click “Allow” in the Scatter pop-up to activate your proposal. 

If you clicked the “Activate for current” option, your proposal should now be displayed in the Active proposals section of the EOS WPS Portal and is available for voting by EOS Block Producers. If you clicked “Activate for next,” it will begin displaying there as soon as the next voting period begins.

Video walkthrough

Design Background

Those looking for more context into how the WPS discussions got started at the EOS Community Unconference in Rio last year should watch the three videos below. Take the time to watch the videos, especially if you’re passionately against or in favour of the WPS. They should be watched one after another, as they’re chronological in order.

Who is building the EOS Community?

WPS and Retaining Talent

WPS Working Group

Daniel Keyes

Chief Operating Officer (COO)
Responsibilities include: product management, operations, community
Location: Toronto, Canada

Prior to founding the first EOS community in Toronto and co-founding EOS Nation, Daniel spent a decade in the financial technology industry working several diverse roles. His extensive experience in customer service, sales, sales coaching, agent training, digital marketing, digital process management (lean green belt), and product management (certified scrum master, certified product owner) eventually lead him to consulting for a blockchain dev shop.

Daniel earned a Bachelor of Journalism from Ryerson University in 2009 and worked as a chase producer intern at Global TV.

Daniel lives by the principles of Truth, Love, and Freedom.