# Tane — NGI Fediversity (NLnet) application draft

> **Working document, NOT tracked in git.** Ready-to-submit draft for the NLnet
> NGI Fediversity call (nlnet.nl/propose). Deadline **1 Aug 2026, 12:00 CEST** (confirmed on the site).
> Derived from `VISION.md`, `PLAN.md`, `docs/design/*` and `docs/notes/modelos-financiacion.md`.
> Written in English (the proposal must be in English; VISION.md is the Spanish source).
> **Updated 2026-07-17** to reflect the shipped state: app live on Google Play (v0.1.1), site at
> tane.comunes.org, most of the social layer already built. The ask now funds the *remaining*
> federated-infrastructure work, not a from-scratch build.

---

## Part A — Strategy & framing (for us, NOT for the form)

### The new, stronger story: we shipped, now we complete the federated infrastructure
Since the first draft, the project advanced a lot. This is now a **track-record application**, not a
promise:
- **Live on Google Play** (v0.1.1, `org.comunes.tane`), **GMS-free build** ready for F-Droid.
- **Public site** at **tane.comunes.org**, translated via Weblate (translate.comunes.org).
- **Block 1 (inventory) shipped**, and **most of Block 2 (the social layer) already shipped**: offers
  (NIP-99), private metadata-hiding messaging (NIP-17), a Duniter-style egocentric web of trust
  (kind 30777), ratings (kind 30778), profiles + multi-account identity, Plantaré pledges, saved-search
  alerts. All transports live in the reusable `commons_core` engine, with ~131 test files and CI.

NLnet weighs **technical feasibility (30%)** and **value for money (30%)**: a shipped, tested,
in-store app de-risks both. Lead with that.

### Fit with Fediversity — now genuine, not a stretch
The Fediversity fund leans to the *hosting stack / self-hosting* side. The **work that remains is
exactly that side**, which is why the fit is now real:
1. **Self-hostable community relay** — `relay.comunes.org` is **already deployed and running**. The
   remaining Fediversity-shaped work is turning it into a **reproducible, documented recipe any seed
   network can self-host**, plus moderation tooling (NIP-56 reports, key-blocking) and operational
   hardening — so the network is owned by communities, not a single instance.
2. **Multi-device sync** — the encrypted `SyncTransport` landed (NIP-78, relay sees only ciphertext);
   the app-level `SyncService` that replicates your inventory across your own devices is **pending**.
   This is data portability + self-custody, a Fediversity theme.
3. **Interoperability & portability** — open, versioned export/import already exists; add opt-in
   **Darwin Core / GBIF** export so agrobiodiversity data can flow to open biodiversity atlases.
4. **`commons_core` as reusable federated infrastructure** — Tane is a seed app wrapped around a generic
   Nostr + CRDT + web-of-trust + messaging engine; seeds are the first app, others can follow.

Framing in one line: **bringing federation beyond social media, into the physical commons — and we
already have a working app to prove it.**

### Plan B — don't bet everything on this call
Honest odds: the fit is now decent (the remaining work IS hosting/portability-shaped) but Fediversity
reviewers may still read "mobile app on Nostr" as adjacent to their ActivityPub/NixOS hosting focus.
Mitigation, at near-zero extra cost:
- **Submit to Fediversity anyway** (short form, strong track record, real infra milestones) — worst case
  is a rejection with feedback.
- **Reuse this same dossier for NGI Zero Commons / Core when regular calls reopen after summer 2026** —
  Tane as commons infrastructure is arguably a *better* fit there (`commons_core`, open protocols,
  community-run relays). Keep this file as the master; only the fund-specific framing paragraph changes.
- Meanwhile, keep the **Goteo matchfunding** (Red de Semillas) track as the community-round complement.

### NLnet requirements checklist
- [x] **FOSS licence** — code AGPL-3.0; docs/assets CC-BY-SA.
- [x] **Open standards** — Nostr NIPs (99/17/44/78/56), Duniter-style WoT, open data formats, Darwin Core.
- [x] **European dimension** — EC-LLD (23 European seed networks), Red de Semillas, EU seed-law (PRM) context.
- [x] **Milestone-based, verifiable deliverables** — see Part C.
- [x] **Sustainability after funding** — local-first, open data/code, cheap community relays; never per-transaction fees.
- [ ] **Generative-AI disclosure** — declared honestly and minimally (see §13 + the log template below).
- [ ] **Privacy statement** — tick the acknowledgement of NLnet's privacy statement on the form.

### The AI concern (read before submitting)
NLnet has a formal **Generative AI policy** (nlnet.nl/foundation/policies/generativeAI/). It does **not**
forbid AI, but imposes real obligations, and reviewers value **substance over marketing**. Three things,
don't conflate them:
1. **Prompt provenance log (required):** if GenAI is used in the application process, you must keep a
   log of prompts/outputs. → the Appendix table below.
2. **Public disclosure (required for substantive use):** any GenAI use that materially affects the
   output must be disclosed so evaluators understand how the proposal was produced. → §13.
3. **Purely-AI outcomes are NOT payable, and must be FLOSS-clean:** "Outcomes purely generated by AI are
   not allowed to be submitted as work eligible for payment." → this hits the **milestones (M1–M5)**, not
   just the application: the delivered code/docs must be **human-authored** (AI-assisted is fine; you must
   also verify outputs don't reproduce copyrighted/licence-incompatible material). **Non-compliance can
   mean rejection of the proposal or termination of a running grant.**

Plus the softer risk: an application that *reads* as AI slop scores worse. Fix for all of it = make the
text genuinely yours.

**Action for vjrj — rewrite §3, §4, §5 in your own voice** (that's what a reviewer reads first; the rest
is technical scaffolding). Add first-person specifics only you can write: Kokopelli, the 2009 paper
Plantare you originated, why the whole seed sector refuses per-transaction fees, your Ğ1nkgo/Duniter
background, and the fact the app is already in people's hands.

**De-"slop" pass:** cut the tells — em-dashes everywhere, rule-of-three lists, heavy bold,
"not X but Y" constructions, brochure cadence. Rougher, more technical, more personal = better here.

### Process notes
- Submit several days early — "deadlines are hard". Draft offline (this file), paste at the end.
- Plain text is preferred; keep formatting light. Attachments ≤ 50 MB total.
- You may submit multiple independent proposals in one round; do not double-submit via FundingBox + NLnet.

---

## Part B — Form answers (the actual draft, English)

### Current status (facts to weave in — all verifiable)
- **Live:** Google Play v0.1.1 (`org.comunes.tane`); site **tane.comunes.org**; community Nostr relay
  **relay.comunes.org running**; source public (AGPL-3.0).
- **F-Droid:** GMS-free build + recipe ready (awaiting registry upload).
- **Languages:** 7 (en, es, pt, fr, ast, de, ja); RTL + CJK fonts bundled; translated on Weblate.
- **Engine:** `commons_core` (pure Dart) — identity derivation, HLC, CRDT, geohash, all Nostr transports.
- **Tests/CI:** ~131 test files; Forgejo Actions runs analyze + test on both packages.

### 1. Contact / Organisation / Country
- **Applicant organisation:** Comunes (registered non-profit association), Spain / EU.
- **Project lead:** Vicente J. Ruiz Jurado (vjrj) — technical lead.
- **Package id / namespace:** `org.comunes.tane`.
- **Contact:** vjrj@comunes.org.
- **Project page:** https://tane.comunes.org · source repository public (AGPL-3.0) · live on Google Play.

### 2. Project name
**Tane — self-hostable, local-first infrastructure for seed-sharing communities.** (種, "seed"; from
*tanemaki*, "to sow".)

### 3. Abstract (a few sentences)
> ✍️ **vjrj: rewrite in your own voice.** Scaffolding below — keep the meaning, drop the polished cadence.

Tane lets communities run their own seed-sharing network end to end: a local-first mobile app, a
self-hostable relay, and identity and data the user fully owns and can take anywhere — no account, no
central server, no company in the middle. The app is already live on Google Play in seven languages;
offers, private messaging, reputation and encrypted device sync ride on open federated protocols
(Nostr NIPs) and a Duniter-style web of trust, implemented in a reusable engine (`commons_core`) where
seeds are only the first application. What remains — and what this grant funds — is the hosting and
portability side: a **reproducible relay recipe any collective can self-host** (our reference instance
already runs), **completion of encrypted multi-device sync**, **open-standards data portability**
(Darwin Core / GBIF export), and production hardening — so a seed network can operate the whole stack
without depending on us, or on anyone.

### 4. Can you explain the whole project and its expected outcome?
> ✍️ **vjrj: rewrite in your own voice.** Add first-person specifics (Kokopelli, the 2009 paper Plantare,
> Ğ1nkgo). Scaffolding below.

A handful of corporations control most of the world's seed supply, and traditional varieties — and the
knowledge to grow them — are being lost. Sharing seeds has even become legally suspect (e.g. Kokopelli
fined in France). Seed networks resist with notebooks and spreadsheets; there was no friendly, free,
decentralised tool for them.

Tane is built in **layers, each useful alone**, and most are **already shipped**:
1. **Inventory (local-first) — shipped.** Encrypted seed bank on your phone (SQLite + SQLCipher), fully
   offline, no account; backup + printed recovery; 7 languages.
2. **Offer status — shipped.** Per item: private / gift / exchange / sale.
3. **Local sharing (federated) — shipped.** Offers as signed Nostr events (NIP-99), discovered by
   **coarse geohash** (~2.4 km, never your address); private DMs (NIP-17); ratings; Plantaré pledges;
   saved-search alerts. No central operator can censor, sell data, or charge a fee.
4. **Trust — shipped.** Egocentric Duniter-style web of trust (you vouch for people you've met); spam
   from unknown keys is filtered with no central moderator.

A de-risking spike proved the whole social happy-path on vetted pure-Dart libraries, and it is now
**production code in people's hands**. **What this grant funds is the hosting and portability layer that
makes the network genuinely community-owned** (see Part C): turning our running relay into a
**reproducible, self-hostable recipe with moderation tooling**; completing **encrypted multi-device
sync** (the transport already landed; the relay only ever sees ciphertext); **open-standards data
portability** (opt-in Darwin Core / GBIF export toward public biodiversity atlases); plus trust
cold-start for real seed fairs, optional Ğ1 price tags, and messaging/offers hardening.

**Expected outcome:** any seed collective in Europe can **self-host the entire stack from a documented
recipe** — relay, moderation, app, data — with identity and data fully portable and **zero dependency on
Comunes or any single operator**. And because the hard parts live in the generic `commons_core` engine,
the same infrastructure is reusable for other physical-commons networks (tool libraries are the next
candidate).

### 5. Compare your own project with existing or historical efforts
> ✍️ **vjrj: rewrite in your own voice.** You know this sector first-hand — say why it refuses
> per-transaction fees, and tell the Plantare story as its originator. Scaffolding below.

- **Seed Savers Exchange, Graines de Troc, Arche Noah, Red de Semillas** — valuable, but each is a
  **centralised web platform**: single operator, an account, a server that can go dark, no local-first
  offline app, not federated, not self-hostable.
- **Garden/inventory apps** — mostly **proprietary and extractive**; none do decentralised sharing or trust.
- **Marketplaces (Wallapop-style)** — a central intermediary that takes a commission and can censor.
  Tellingly, **no seed-exchange platform anywhere charges per-transaction fees** — the whole sector uses
  gift/exchange/membership. We follow that, by design.
- **Historical precedent — the Plantare (2009).** A paper "seed promissory note" already solved
  decentralised trust and reciprocity *socially* (a bearer instrument, both parties hold a copy, the
  ledger distributed across drawers). We digitise it without a central register.

**Why it's needed / why existing solutions don't answer it:** none combines local-first, federation over
open standards, self-hostability, identity/data portability, and a spam-resistant web of trust — while
staying free and non-extractive. Tane already does, in production; the engine is reusable for other
physical-commons networks.

### 6. Significant technical challenges (the remaining work)
- **Self-hostable relay + moderation** — `relay.comunes.org` already runs; the challenge is making it a
  reproducible recipe others can run, with NIP-56 report handling and key-blocking, so moderation is
  "with a response" but not centralised.
- **Multi-device sync at the app level** — wire `SyncService` onto the landed encrypted `SyncTransport`:
  serialise inventory, push on mutation, idempotent LWW import on receipt, stable per-install device id,
  rare-conflict UI. Relay only ever sees ciphertext.
- **Interoperability / portability** — opt-in Darwin Core / GBIF export of agrobiodiversity (blurred
  location, collective-bank level, one-way) — exactly the data those atlases lack.
- **Messaging/offers hardening** — NIP-44 interop-exact test vectors, offline DM delivery/retry, offer
  expiry & revocation on already-replicated relays.
- **Trust cold-start** — bootstrap the web of trust at real fairs / Ğ1 seed groups (QR, no network).
- **Portable derived identity** — one root seed, one-way HKDF secp256k1 subkey for Nostr, one printable
  QR backs up everything (already implemented; polish + docs).

### 7. Project ecosystem & stakeholder engagement
- **Seed networks:** Red de Semillas (Spain), **EC-LLD / Let's Liberate Diversity** (23 European seed
  networks) for European reach; Arche Noah as a policy ally.
- **Free-money communities (Ğ1/Duniter):** first pilots — existing identity, existing web of trust,
  aligned values.
- **Seed fairs and markets:** where trust bootstraps face to face.
- **Translators & contributors:** already active via Weblate; code and docs public.

### 8. Relevant prior experience & track record
- **Shipped, in production:** Tane is **live on Google Play** (v0.1.1), GMS-free build ready for F-Droid,
  site at tane.comunes.org, 7 languages via Weblate, RTL+CJK support, a full legal package, automated
  store publishing (Fastlane) and CI (Forgejo Actions, ~131 test files). Block 1 + most of Block 2 done.
- **vjrj** authored **Ğ1nkgo**, a Duniter/Ğ1 wallet in Flutter/Dart; Tane reuses its cryptographic
  primitives (secp256k1, HKDF, Duniter identity) — no reinvention.
- **vjrj originated the Plantare concept** (BAH-Semillero, 2009, CC-BY-SA) and wrote *"Las semillas del
  conocimiento libre"* (2005) — a decade of domain authority in seed commons.
- **Comunes** — registered association, stable legal counterpart for milestone accountability.

### 9. Requested amount
**€32,000.**

### 10. Budget usage / task breakdown
See Part C. Milestone-based; each milestone is an independent, verifiable deliverable with a CI-gated
test suite where applicable. NLnet pays on verification of each milestone.

### 11. Other funding sources (past and present)
- Built so far with **volunteer work**; **no prior grant funding**; no overlapping funding for this scope.
- Complementary community funding (e.g. Goteo matchfunding with Red de Semillas) is a *future*
  sustainability avenue, not a duplicate of this request.

### 12. Sustainability after the grant
- **Local-first:** useful even with no servers and no maintainer — utility does not expire.
- **Open code & data (AGPL-3.0, open export):** anyone can continue, fork, or **self-host the relay**.
- **Cheap, community-run relays** (collectives / Comunes), plus opportunistic app-as-relay and
  physical-proximity exchange at fairs.
- **Non-extractive revenue only, never on the seed:** voluntary association membership (Seed Savers
  model), optional managed services for institutional seed banks. No per-transaction commission — legally
  prudent (EU PRM in trilogue) and coherent with the commons.

### 13. Compliance & disclosure
- **Licence:** AGPL-3.0 (code); CC-BY-SA (docs/assets). Compatible with the reused Duniter/Ğ1nkgo stack.
- **Privacy statement:** acknowledged.
- **Generative-AI disclosure (honest & minimal — paste into the form):**
  > An AI assistant was used only as a drafting aid for this application text: to translate and structure
  > an initial English outline from our pre-existing Spanish design documents (VISION.md, PLAN.md,
  > docs/design/*), which predate and are independent of this application. All technical claims,
  > architecture, milestones and budget are the applicant's own; the project lead rewrote and verified
  > the text, and no AI output was submitted unedited. A prompt provenance log is available on request.
  > The funded deliverables (M1–M5) will be human-authored (AI-assisted at most), released under
  > AGPL-3.0, with no purely-AI-generated outcomes submitted for payment.

  *Adjust to match what you actually did before sending. If you rewrite §3–§5 yourself (recommended),
  this statement stays true and strong.*

---

## Part C — Milestones & budget (€32,000)

Milestones reflect the **real remaining work** (Block 1 + most of Block 2 are already shipped). They are
ordered by theme: **M1–M3 are the federated-hosting core** (self-hosting, sync, portability); **M4–M5
harden and bootstrap it**. Each is an independent, verifiable deliverable; NLnet pays on verification.

| # | Milestone | Verifiable deliverable | € |
|---|-----------|------------------------|---|
| **M1** | **Self-hostable relay recipe + moderation** | `relay.comunes.org` already runs; deliver a **reproducible, documented recipe** any seed network can self-host, plus NIP-56 report handling + key-blocking moderation tooling and an operator manual | 6,000 |
| **M2** | **Multi-device sync (app `SyncService`)** | Inventory replication across a user's own devices over the landed encrypted `SyncTransport` (NIP-78): serialise + push on mutation, idempotent LWW import, stable per-install device id, conflict UI; tests (relay sees only ciphertext) | 8,000 |
| **M3** | **Interoperability & data portability** | Opt-in Darwin Core / GBIF export of agrobiodiversity (blurred location, collective-bank level, one-way); polished open export/import + identity portability docs | 5,000 |
| **M4** | **Messaging & offers hardening** | NIP-44 interop-exact test vectors, offline DM delivery/retry queue, offer expiry + revocation on replicated relays, spam-filter polish; CI-gated | 7,000 |
| **M5** | **Trust cold-start + Ğ1 price integration + docs/release** | WoT cold-start flows for fairs / Ğ1 groups (QR, offline); Ğ1 price tag + deep-link to wallets (no in-app payment); contributor architecture guide + multilingual user guide; F-Droid release | 6,000 |
| | **Total** | | **32,000** |

---

## Submission checklist (before nlnet.nl/propose)
1. Cross-check every field above against the live form + Guide for Applicants.
2. Fit test: does the abstract + §4 opening read "federation / portability / self-hosting" *before* "seeds"?
3. Budget: milestones independent & verifiable, effort realistic, sum = €32,000.
4. Compliance: FOSS licence stated, privacy statement acknowledged, **AI-disclosure + provenance log ready**.
5. Confirm the 1 Aug 2026 deadline on the site; submit with several days' margin.
6. Language pass: rewrite §3–§5 in vjrj's voice; clear, technical English throughout.

---

## Appendix — AI-use log (keep, attach or provide on request)
Fill as you go so the disclosure is accurate and verifiable.

| Date | Tool / model | Prompt (verbatim) | What the output was used for | Kept unedited? |
|------|--------------|-------------------|------------------------------|----------------|
| 2026-07-10 | Claude Code (Opus 4.8) | "Me ayudas a presentar tane a esta convocatoria? qué pedirías…" | Initial English draft/outline from repo docs | No — to be rewritten & verified by lead |
| 2026-07-17 | Claude Code (Opus 4.8) | "He avanzado mucho en el desarrollo, puedes actualizar la application?…" | Updated draft to reflect shipped status + new milestones | No — to be rewritten & verified by lead |

> Keep the raw session transcript alongside this table. If §3–§5 are rewritten by hand, note that here too.
