---
slug: "OsmoticFilter"
name: "OsmoticFilter"
type: "Protocols"
layer: "Society"
ref: "OsmoticFilter#239a"
sema_id: "sema:OsmoticFilter#mh:SHA-256:239a63d284e0676746b9ec3bd2e957eeec5d80d42e84b066e9b74f937cd5bd1e"
tags: ["Society","Protocols"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.pages.dev/bootstrap/index.json
url: https://mindscape.pages.dev/bootstrap/OsmoticFilter/
related: ["Criteria","Canary","Hysteresis"]
---

# OsmoticFilter

Spam prevention via pressure thresholds

Layer: Society · Category: Protocols

## Mechanism

Agents operate inside a semi-permeable membrane. Inbound messages are rejected unless they carry sufficient 'pressure' (stake, reputation, or relevance score) to overcome the membrane's current tension. The filter supports Multi-Solvent extraction, allowing different types of pressure (Money vs Trust) to be converted at defined rates per the [Criteria](https://mindscape.pages.dev/bootstrap/Criteria.md) criteria. It uses [Hysteresis](https://mindscape.pages.dev/bootstrap/Hysteresis.md) to prevent oscillation and [Canary](https://mindscape.pages.dev/bootstrap/Canary.md) messages to test permeability.

## Invariants

- Normalized Pressure: Sum(Weighted_Solvents) > Membrane.tension
- Permeability: If Queue < Capacity, tension must approach zero (membrane relaxes)
- Snapback: If Queue drops rapidly, tension must reset instantly (anti-hysteresis)

## Failure modes

- Starvation of low-stake but high-importance messages (mitigated by Whitelist).

## Parameters

- `decay_rate` (Float, [0.1, 0.9]): Linear relaxation
- `snapback_threshold` (Float, [0.0, 0.2]): Queue depth % triggering instant reset

## Builds on

- [Criteria](https://mindscape.pages.dev/bootstrap/Criteria.md) (Infrastructure; Accepts)
- [Canary](https://mindscape.pages.dev/bootstrap/Canary.md) (Society; References)
- [Hysteresis](https://mindscape.pages.dev/bootstrap/Hysteresis.md) (Infrastructure; References)

## Used by

—

## Identity

- Sema ID: `sema:OsmoticFilter#mh:SHA-256:239a63d284e0676746b9ec3bd2e957eeec5d80d42e84b066e9b74f937cd5bd1e`
- Ref: `OsmoticFilter#239a`
- Supersedes:
  - `sema:OsmoticFilter#mh:SHA-256:5cf61dc7a3adf65d0ff6dab7a022402fd79095fe4e1cb420c0fbad1401b84f52`
  - `sema:OsmoticFilter#mh:SHA-256:36b5f762c178f196095cc38a5183326ac9183a3fe351b4b3e9dfeb44a2fac587`
  - `sema:OsmoticFilter#mh:SHA-256:d437b78f521165fd6c5dd408a22170e7ca0b75b43842fb70111f321c92be11ed`
  - `sema:OsmoticFilter#mh:SHA-256:f37de2d27a053113f433bb0db36f7d4f4ee92c1486e8cc79d0d0efd1a7d1514b`

## Links

- [Pattern page](https://mindscape.pages.dev/bootstrap/OsmoticFilter/)
- [View in the interactive graph](https://mindscape.pages.dev/bootstrap/#OsmoticFilter)
- [JSON](https://mindscape.pages.dev/bootstrap/OsmoticFilter.json)
- [Index of all patterns](https://mindscape.pages.dev/bootstrap/index.json)
