A protocol for surfacing and prioritizing community objectives
We will be at the
d/accresidency in Patagonia! 🏔️hosted by Protocol Labs and running some field tests. Please reach out if you will be there!
Signals is a new coordination protocol for decentralized communities. It enables participants to lock governance tokens behind initiatives they believe in, surfacing real-time sentiment and collective intent before formal governance or funding decisions take place.
Signals lets communities explore ideas fluidly, observe where alignment emerges, and experiment with incentive-aligned decision discovery.
You can learn more about the mechanics here:
- Initial Idea, https://mirror.xyz/lighthousegov.eth/M2MQV8O-AOoLW9RAK3zpsRSHZ2vsp9CRlaOPgUbpyHQ
- Primer, https://mirror.xyz/lighthousegov.eth/yOY3vgiiE5HfPbUNLSbYUpjICDA3SrcJkQVEjTPiQR4
- Incentive Design, https://mirror.xyz/lighthousegov.eth/mEZhb9Nwav_ZpwrvOAKCxzmJFbsez-jow9t2b4mjc2k
Original demo → https://www.youtube.com/watch?v=JKchm2MFXWA
Existing on-chain governance systems are slow, intimidating, and dominated by whales.
Signals was designed to address these challenges:
- Continuous discovery — surface ideas early, before proposal lock-in
- Conviction signaling — longer token locks carry more weight
- Fairness — small holders can match whale influence through time commitment
- Pre-vote feedback — measure support dynamics before governance execution
- Optional incentives — allow sponsors to reward aligned participation
Signals helps communities listen to themselves — revealing which directions have genuine collective energy.
Review the Repository Guidelines before proposing changes.
To enable the Edge City residency claim flow in the interface:
NEXT_PUBLIC_EDGE_CITY=trueEDGE_OS_API_KEY=...and optionallyEDGE_OS_BASE_URL=https://api-citizen-portal.simplefi.techEDGE_CITY_SIGNER_PRIVATE_KEY=0x...(server-side key used to sign claim allowances)EDGE_CITY_DEFAULT_CLAIM_AMOUNT_WEI=1000000000000000000EDGE_CITY_AMOUNT_PER_DAY_WEI=...(optional; overrides default amount when residency days are present)EDGE_CITY_ALLOWANCE_TTL_SECONDS=86400(optional; defaults to 24 hours)
Flow overview:
- The user authenticates with EdgeOS; the server validates residency (email verification plus popup/total-day rules).
- The server signs an EIP-712 allowance tying together the wallet, participant ID, amount, and expiry and returns it to the client.
- The UI submits
claim(address to, uint256 participantId, uint256 amount, uint256 deadline, bytes signature)on theExperimentToken.
EIP-712 domain: name = "ExperimentToken", version = "1", chainId, verifyingContract = token address.
Struct type:
Claim(address to,uint256 participantId,uint256 amount,uint256 deadline)
Keep the allowance signer key secure; rotate it by calling setAllowanceSigner on-chain and updating EDGE_CITY_SIGNER_PRIVATE_KEY.
Short TTLs reduce the blast radius if an access token leaks.
-
Deploy a Board
- Any community can deploy a board via the Signals factory.
- Configure parameters:
- Governance token (ERC20)
- Max initiatives & duration
- Acceptance threshold
- Minimum tokens to propose
- Decay style (linear / exponential)
-
Propose Initiatives
- Participants propose initiatives (drafts, ideas, or full proposals).
- Each includes metadata (title, markdown body, optional attachments).
-
Signal Support
- Members lock tokens in support of initiatives.
- Weight = amount × lock duration × decay factor.
- Locks cannot be withdrawn until expiration or acceptance.
-
Acceptance & Refunds
- Once support passes the threshold, the initiative is accepted.
- Supporters are refunded their tokens automatically.
-
Incentives (Optional)
- Anyone can escrow rewards (e.g., USDC) for an initiative.
- If the initiative is accepted, rewards distribute proportionally to supporters.
| Concept | Description |
|---|---|
| Board | A configured governance surface for a token community |
| Initiative | A proposed idea or draft to gauge support |
| Lock | Time-bound commitment of tokens in favor of an initiative |
| Decay | Reduction in bonus weight over time (ensures timeliness) |
| Threshold | Minimum aggregate support for acceptance |
| Sponsorship | Token-backed endorsement by peers or delegates |
| Reward Pool | Optional escrow that pays out upon acceptance |
# tty0 – Local chain
anvil --block-time 5
# tty1 – Setup local environment (contracts, mocks, etc.)
bash scripts/dev.sh
# tty2 – Start indexer
cd apps/indexers
pnpm dev