Skip to main content

Overview

SFLUV is a multi-role platform where users can hold multiple roles simultaneously. Each role grants specific permissions and responsibilities within the governance and workflow ecosystem.

Core Roles

Proposer

Proposers create and manage workflows that define community projects.
  1. Submit a proposer request via /settings with organization name and notification email
  2. Verify your email address
  3. Wait for admin approval
  4. Receive email notification when approved
  • Create new workflows with custom steps and roles
  • Manage active workflows and monitor progress
  • Create and use workflow templates for reuse
  • Delete workflows in pending status
  • View workflow vote status and results
  • Assign supervisors to workflows
  • Propose workflow series deletions
{
  user_id: string
  organization: string
  email: string  // notification email
  status: "pending" | "approved"
  created_at: number
  updated_at: number
}
Proposers cannot vote on their own workflow proposals. This ensures unbiased governance decisions.

Improver

Improvers complete workflow steps and earn bounties for their work.
  1. Submit an improver request via /settings with first name, last name, and email
  2. Verify your email address
  3. Wait for admin approval
  4. Set a primary rewards account (Ethereum address) for receiving bounties
  • View available workflow steps matching their credentials
  • Claim and start workflow steps
  • Submit step completions with photos, text, and dropdown responses
  • Report if a step is not possible to complete
  • Claim entire workflow series for recurring work
  • Set absence periods to skip recurring workflow instances
  • Track unpaid bounties and request payout retries
  • Claim workflow manager role for series oversight
{
  user_id: string
  first_name: string
  last_name: string
  email: string
  primary_rewards_account: string  // Ethereum address
  status: "pending" | "approved"
  created_at: number
  updated_at: number
}
Improvers must hold all required credentials for a workflow role to claim steps assigned to that role.

Voter

Voters participate in governance by approving or denying workflow proposals.
Voters are designated by admins. Contact platform administrators to request voter status.
  • View pending workflow proposals
  • Vote to approve or deny workflows
  • Add comments to votes for context
  • View vote tallies and quorum progress
  • Vote on workflow deletion proposals
  • Voters cannot vote on workflows proposed by themselves
  • Each voter can cast one vote per workflow: approve or deny
  • Votes are recorded with optional comments
  • Quorum requires 50% of eligible voters to participate
Once a vote is cast, it cannot be changed. Consider carefully before submitting your decision.

Issuer

Issuers grant and revoke credentials that control access to workflow steps.
Issuers are designated by admins. This role requires trust and understanding of credential requirements.
  • View all improvers and their current credentials
  • Grant credentials to improvers (e.g., dpw_certified, sfluv_verifier)
  • Revoke credentials from improvers
  • View credential history and active credential holders
Currently supported credentials:
  • dpw_certified: Department of Public Works certification
  • sfluv_verifier: SFLUV platform verification credential
Additional credential types can be added by admins as needed.

Supervisor

Supervisors provide oversight for workflows requiring validation or reporting.
  1. Submit a supervisor request via /settings with organization and email
  2. Verify your email address
  3. Wait for admin approval
  4. Be assigned to workflows by proposers
  • View all workflows where assigned as supervisor
  • Access all step submission data and photos
  • Export workflow data to CSV format
  • Download ZIP archives of all workflow photos
  • Filter and search supervised workflows by date and status
  • Receive supervisor bounty upon workflow completion
  • Proposers assign supervisors when creating workflows
  • Supervisor bounty is set per workflow
  • Supervisors receive payout when workflow reaches completed status
  • Multiple workflows can share the same supervisor
Supervisors have read-only access to workflow data. They cannot modify steps or submissions.

Merchant

Merchants accept SFLUV currency for goods and services.
  1. Request merchant status via /settings
  2. Provide business location information
  3. Submit W9 form via Wordpress webhook integration
  4. Wait for admin approval
  • Accept wrapped HONEY tokens as payment
  • Appear on the merchant map at /map
  • Unwrap tokens to base HONEY once W9 verified
  • Manage business contact information
Merchants must complete W9 submission to unlock unwrapping functionality:
  • W9 submissions arrive via Wordpress webhook
  • Eligibility checked before unwrap operations
  • Compliance status visible at /merchant-status

Affiliate

Affiliates distribute token allocations through events and QR codes.
  1. Submit an affiliate request via /settings
  2. Wait for admin approval and weekly allocation assignment
  3. Access affiliate dashboard at /affiliates
  • Create events with QR codes for token distribution
  • Set event expiration times
  • Generate redemption codes with custom amounts
  • Track event redemptions and remaining balances
  • View weekly allocation and available balance
  • Receive automatic refunds for unredeemed event funds
See the Affiliates concept page for comprehensive information on:
  • Event creation and management
  • Payout scheduling and allocation
  • Weekly balance recomputation
  • QR code redemption flow

Admin Role

Admins have superuser access and can perform all operations across the platform.

Admin Capabilities

Role Management

  • Approve/deny proposer requests
  • Approve/deny improver requests
  • Approve/deny supervisor requests
  • Designate voters and issuers
  • Manage merchant approvals
  • Configure affiliate allocations

Workflow Management

  • Force approve workflows (bypass voting)
  • Create default workflow templates
  • View all workflows across all proposers
  • Access all submission data and photos
  • Force approve workflow deletions

Credential Management

  • Create new credential types
  • View all credentials across all users
  • Act as issuer with full privileges

System Operations

  • Access admin panel at /admin
  • Use X-Admin-Key header for scripted API calls
  • Bypass all role checks
  • View platform-wide statistics
  • Manage faucet allocations
Admin users bypass all role checks. Admin actions are logged for audit purposes.

Admin Middleware

The backend enforces admin privileges through middleware:
// From router.go
withAdmin()    // Requires admin role
withProposer() // Admin bypasses
withImprover() // Admin bypasses
withVoter()    // Admin bypasses
withIssuer()   // Admin bypasses
withAffiliate() // Admin bypasses

Multi-Role Users

Users can hold multiple roles simultaneously:
1

Request Multiple Roles

Submit separate requests for each role via /settings
2

Role-Specific UI

The sidebar navigation adapts to show pages for all active roles
3

Context Switching

Navigate between role-specific pages without re-authentication
Example: A user can be both an improver (completing steps) and a proposer (creating workflows), with access to both /improver and /proposer dashboards.

Role Flags in User Context

The frontend AppProvider exposes role flags:
interface User {
  id: string
  email: string
  isProposer: boolean
  isImprover: boolean
  isVoter: boolean
  isIssuer: boolean
  isMerchant: boolean
  isAffiliate: boolean
  isAdmin: boolean
  isSupervisor: boolean
}
Pages use these flags to gate access and render role-specific UI.

See Also

Workflows

Understand workflow creation and lifecycle

Credentials

Learn about the credential system

Voting

How governance voting works

Affiliates

Affiliate event and payout system

Build docs developers (and LLMs) love