> ## Documentation Index
> Fetch the complete documentation index at: https://na-36-mintlify-aebde2c5.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# RFPs & Treasury Proposals

> Apply for Foundation-issued Requests for Proposals (RFPs) or submit a funded Special Purpose Entity (SPE) proposal to the Livepeer onchain treasury.

export const BorderedBox = ({children, variant = "default", padding = "var(--lp-spacing-4)", borderRadius = "var(--lp-spacing-px-8)", accentBar = "", style = {}, className = "", ...rest}) => {
  const variants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    accent: {
      border: "1px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-card)"
    },
    muted: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "transparent"
    }
  };
  const accentBarColors = {
    accent: "var(--lp-color-accent)",
    positive: "var(--green-9)"
  };
  return <div data-docs-bordered-box="" data-accent-bar={accentBarColors[accentBar] ? "" : undefined} className={className} style={{
    ...variants[variant],
    padding: padding,
    borderRadius: borderRadius,
    ...accentBarColors[accentBar] ? {
      position: "relative",
      '--accent-bar-color': accentBarColors[accentBar]
    } : {},
    ...style
  }} {...rest}>
      {children}
    </div>;
};

export const DisplayCard = ({icon, title, style, background = 'var(--lp-color-bg-card)', children, className = "", ...rest}) => {
  if (!title) {
    console.warn("[DisplayCard] Missing required prop: title");
    return null;
  }
  const cardStyle = {
    display: 'flex',
    flexDirection: 'column',
    height: 'calc(100% - 1rem)',
    border: '1px solid var(--lp-color-accent)',
    borderRadius: '8px',
    padding: "var(--lp-spacing-4)",
    marginBottom: "var(--lp-spacing-4)",
    backgroundColor: 'var(--lp-color-bg-page)',
    gap: "var(--lp-spacing-4)"
  };
  const titleStyle = {
    display: 'flex',
    alignItems: 'center',
    gap: "var(--lp-spacing-2)",
    marginBottom: '0',
    color: 'var(--lp-color-text-primary)',
    fontSize: '1rem',
    fontWeight: 600,
    ...style
  };
  const bodyStyle = {
    display: 'flex',
    flexDirection: 'column',
    backgroundColor: background,
    borderRadius: '8px',
    flex: 1,
    padding: "var(--lp-spacing-2)",
    margin: 0
  };
  return <div className={className} style={cardStyle} {...rest}>
      <div style={titleStyle}>
        <Icon icon={icon} size={20} color="var(--lp-color-accent)" />
        {title}
      </div>
      <div style={bodyStyle}>{children}</div>
    </div>;
};

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

<CustomDivider middleText="RFPs & TREASURY PROPOSALS" />

Livepeer has two distinct funded mechanisms for teams and organisations to propose and execute ecosystem work:

* **Foundation RFPs** -- scoped requests issued by the Livepeer Foundation for specific deliverables, where applicants compete for the contract.
* **SPE Treasury Proposals** -- open proposals submitted directly to the Livepeer onchain treasury by any community member, funded from the community-governed LPT reserve.

<br />

<CustomDivider middleText="FOUNDATION RFPs" />

## Foundation RFPs

The Livepeer Foundation issues Requests for Proposals (RFPs) for specific work the Foundation wants to fund. These are scoped briefs with defined objectives, evaluation criteria, and timelines. Multiple applicants may submit proposals, and the Foundation selects the best-fit team.

### How RFPs Work

<Steps>
  <Step title="RFP is issued">
    The Foundation publishes an RFP on the [Livepeer Forum](https://forum.livepeer.org/c/rfp-applications) under the RFP Applications category, with a detailed brief describing the objective, scope, evaluation criteria, and submission deadline.
  </Step>

  <Step title="Review the brief">
    Read the full RFP carefully. Ensure your team has the capacity and relevant experience before investing time in a proposal.
  </Step>

  <Step title="Submit your proposal">
    Post your application as a reply to the RFP thread on the Forum. Include your team background, proposed approach, timeline, budget, and any relevant prior work.
  </Step>

  <Step title="Community discussion">
    Proposals are publicly visible. Community members may comment, and you should engage with any questions or feedback on your thread.
  </Step>

  <Step title="Selection and award">
    The Foundation reviews all submissions and selects an awardee based on the evaluation criteria. The outcome is communicated via the Forum thread.
  </Step>
</Steps>

### Past RFPs

Examples of recent RFPs issued by the Foundation include a comprehensive documentation restructure (September 2025) covering stakeholder-focused, AI-first documentation for all core Livepeer personas: developers, delegators, gateway operators, and orchestrators.

<Card title="Browse RFP Applications on the Forum" icon="comments" href="https://forum.livepeer.org/c/rfp-applications" arrow>
  All open and closed RFPs are listed in the RFP Applications category.
</Card>

<br />

<CustomDivider middleText="TREASURY PROPOSALS" />

## SPE Treasury Proposals

The Livepeer onchain treasury is a community-governed funding mechanism that has been accruing 10% of LPT inflation rewards since December 2023. With reserves of approximately 500,000 LPT and generating around 150,000 LPT per quarter, the treasury funds Special Purpose Entities (SPEs).

An SPE is a working group funded by the community treasury to deliver on a specific mission. SPEs are accountable to the token-holder community for delivery and publish regular updates on the Forum.

<BorderedBox variant="accent" padding="16px 20px">
  **Key requirements for submitting an onchain treasury proposal:**

  * You must have at least **100 staked LPT** to submit (or arrange for an existing staker to submit on your behalf).
  * Proposals require a **33% quorum** of total staked LPT to be valid.
  * Proposals pass with a **simple majority** (more than 50% For votes).
</BorderedBox>

<br />

### The SPE Governance Process

The full governance process is documented by GovWorks (the meta-governance SPE) on the [Livepeer Forum](https://forum.livepeer.org/t/livepeer-governance-process/2767). Below is an overview of the five phases.

<Steps>
  <Step title="Phase 1 -- Idea (Optional RFS)">
    Clarify your SPE's purpose, goals, and alignment with Livepeer's vision. Submit an optional Request for SPE (RFS) in the [GovHub](https://www.notion.so/livepeer/Support-for-creating-an-SPE-Feedback-Form-b55adf374b3044b98f50543352b673e5) to get early community and GovWorks feedback. Use the Treasury Talks or Community Calls for synchronous input.
  </Step>

  <Step title="Phase 2 -- Draft Pre-Proposal">
    Draft your SPE Proposal using the [SPE Proposal Template](https://docs.google.com/document/d/11I8ds1-tA1PaYU5rxJ58eodR-JfsjuyOm2pXXE-O6ow/edit). Post it in the [Treasury category on the Forum](https://forum.livepeer.org/c/treasury/18). The proposal must remain live for at least seven days before moving forward. Engage with all feedback and revise as needed. Obtain a clear go-ahead from GovWorks before submitting onchain.
  </Step>

  <Step title="Phase 3 -- Onchain Submission">
    Confirm you have an EVM-compatible wallet (a multi-sig is recommended) and that the proposer holds at least 100 staked LPT. Submit the final proposal to the [Livepeer Treasury](https://explorer.livepeer.org/treasury), linking to the Forum thread in the proposal description.
  </Step>

  <Step title="Phase 4 -- Voting">
    After a \~21-hour Voting Delay (one Livepeer round), the Voting Period opens for approximately nine days (10 rounds). Orchestrators with delegated LPT vote For, Against, or Abstain. Individual delegators may vote independently. The proposal passes if 33% quorum is met and more than 50% of votes are For.
  </Step>

  <Step title="Phase 5 -- Implementation and Accountability">
    If the proposal passes, the treasury transfer executes to the designated wallet. The SPE becomes an active entity and must publish periodic updates in the Forum covering budget usage, milestones reached, and next steps. Major scope or budget changes require a new onchain vote.
  </Step>
</Steps>

### Active SPEs (Examples)

The Livepeer ecosystem has funded a wide range of SPEs since the treasury launched. Examples include:

* **AI Video SPE / MuxionLabs** -- developing real-time AI video pipelines, ComfyStream, and BYOC (Bring Your Own Container) infrastructure
* **Livepeer Cloud SPE** -- demand generation, community gateway access, and orchestrator support tooling
* **Protocol R\&D SPE (Sidestream)** -- protocol security, vulnerability triage, and safe upgrade processes
* **GovWorks** -- meta-governance, treasury process management, and SPE onboarding
* **LiveInfra SPE** -- community Arbitrum RPC node operations and network health
* **LLM SPE** -- AI gateway for LLM workloads and developer education

<Card title="SPE Dashboard (Notion)" icon="grid-2" href="https://www.notion.so/livepeer/SPE-Dashboard-cd7e27da8dd54820b1aaea5b0b33541b" arrow>
  View all active and past SPEs, their mandates, and funding status.
</Card>

<br />

<CustomDivider middleText="WHAT DOES LIVEPEER NEED?" />

## What Kinds of SPEs Does the Ecosystem Need?

The Forum post [What SPEs does Livepeer need?](https://forum.livepeer.org/t/what-spes-does-livepeer-need/2177) is a useful starting point for thinking about gaps. High-value areas that the community has historically funded include:

* Real-time AI video infrastructure and pipeline development
* Demand generation: onboarding and enabling new gateway operators and developers
* Protocol security: audits, vulnerability triage, and safe upgrades
* Developer education: tutorials, bootcamps, SDKs, and documentation
* Network health: tooling for orchestrators, delegators, and governance participants
* Creative industries: pilots and partnerships in media, art, and entertainment

<br />

<CustomDivider middleText="RESOURCES" />

<CardGroup cols={2}>
  <Card title="Livepeer Governance Process (Full Guide)" icon="ballot-check" href="https://forum.livepeer.org/t/livepeer-governance-process/2767" arrow>
    The authoritative five-phase SPE governance guide maintained by GovWorks.
  </Card>

  <Card title="SPE Proposal Template" icon="file-lines" href="https://docs.google.com/document/d/11I8ds1-tA1PaYU5rxJ58eodR-JfsjuyOm2pXXE-O6ow/edit" arrow>
    The official Google Doc template for drafting an SPE Pre-Proposal.
  </Card>

  <Card title="Livepeer Treasury Explorer" icon="coins" href="https://explorer.livepeer.org/treasury" arrow>
    Submit and vote on onchain treasury proposals directly from the Livepeer explorer.
  </Card>

  <Card title="GovWorks SPE" icon="scale-balanced" href="https://www.notion.so/GovWorks-SPE-caa4a5442ddb4014b1f0e85aba4dce47" arrow>
    Reach out to GovWorks for proposal mentorship and governance process support.
  </Card>

  <Card title="Forum: Treasury Category" icon="comments" href="https://forum.livepeer.org/c/treasury/18" arrow>
    Browse all past and current SPE pre-proposals and proposals on the Forum.
  </Card>

  <Card title="Forum: RFP Applications" icon="file-contract" href="https://forum.livepeer.org/c/rfp-applications" arrow>
    Find and respond to open Foundation RFPs.
  </Card>
</CardGroup>

<br />

<Note>
  GovWorks can connect teams who want to submit an onchain proposal but do not hold the required 100 staked LPT with existing stakers who can submit on their behalf.
</Note>
