Regolamento utilizzo cred_tempo, euro e dash nei progetti

1. Tipi di pagamento

Ogni contributo (step, servizio, lavoro) può essere saldato in uno dei seguenti modi:

  • Pagato subito:

    • in cred_tempo (unità interna della comunità)
    • in euro (fattura o prestazione occasionale)
    • in dash (pagamento diretto tra wallet)
    • ✅ La partita è chiusa.
    • ❌ Nessun diritto a compensi finali del progetto.
  • Promessa (nota di credito):

    • Registrata come PROMISECREDTEMPO.
    • Nessun saldo immediato.
    • ✅ Partecipazione al riparto finale (in euro netti, dopo tasse e spese).
    • ❌ Nessun pagamento ora.
  • Pagamento misto (cred_tempo + euro/dash):

    • Il valore del servizio può essere diviso in due o più valute.
    • Esempio: 70 € → 40 € in euro + 30 cred_tempo.
    • Ogni parte è registrata come transazione separata.
    • ✅ Il servizio è considerato pagato.
    • ❌ Nessun diritto a compensi finali del progetto (anche la quota in cred_tempo è “pagata ora”).

2. Regola d’oro

  • Se un contributo è pagato subito (cred/euro/dash o misto) → non partecipa al riparto finale.
  • Se un contributo è solo in nota (promisecredtempo) → partecipa al riparto finale.
  • È possibile anche il caso parziale: parte pagata subito, parte promessa → solo la parte promessa partecipa al riparto.

3. Promesse e prestiti

  • Le promesse interne sono registrate come PROMISE_CRED_TEMPO.
  • I prestiti esterni in Dash possono essere annotati come INVESTOR_NOTE_DASH:
    • Non modificano i saldi interni.
    • Servono solo per trasparenza e reputazione.
    • Eventuali rimborsi o utili vanno definiti nell’accordo di progetto.

4. Tipi di transazione

🔹 Transazioni interne (ledger cred_tempo)

  • SERVICE_PAYMENT_CRED → acquisto servizio/evento pagato in cred_tempo.
  • PROJECT_STEP_CRED → accredito cred_tempo per step svolto su progetto.
  • REFUND_CRED → rimborso interno in cred_tempo.

🔹 Transazioni esterne (solo memo, no ledger cred)

  • SERVICE_PAYMENT_EUR → acquisto in euro (pagato con fattura o ricevuta).
  • SERVICE_PAYMENT_DASH → acquisto in dash (pagamento diretto tra wallet).
  • PROJECT_PAYOUT_EUR → pagamento finale in euro, proporzionale alle promesse.
  • PROJECT_PAYOUT_DASH → pagamento finale in dash, proporzionale alle promesse.

🔹 Note (promesse o prestiti)

  • PROMISE_CRED_TEMPO → nota di credito interna (step non pagato ora, ma valido per il riparto).
  • INVESTOR_NOTE_DASH → nota di prestito in dash (accordo esterno, non modifica saldi interni).
  • EXTERNAL_SWAP_NOTE → scambio privato tra soci cred_tempo ↔ dash, registrato solo come nota per trasparenza.

5. Riparto finale

Alla chiusura di un progetto:
1. Si calcolano entrate totali.
2. Si sottraggono spese e tasse.
3. Si ottiene il netto distribuibile.
4. Si sommano tutti i PROMISE_CRED_TEMPO.
5. Ogni socio riceve una quota proporzionale:
- Quota socio = (promessa_cred / totale_promesse_cred) × euro_netto.


6. Ruoli e responsabilità

  • Collaboratori: scelgono per ogni step se ricevere pagamento immediato, misto o promessa.
  • Imprenditori/finanziatori: possono ricevere note di credito per capitali o spese anticipate.
  • Clienti finali: pagano in euro, dash o misto.
  • Progetti: hanno la responsabilità di registrare correttamente pagamenti, promesse e note.

7. Trasparenza

  • Tutte le transazioni in cred_tempo sono registrate nel ledger interno.
  • Le note di credito e i prestiti esterni sono registrati come note per trasparenza.
  • I payout finali in euro/dash sono registrati come PROJECT_PAYOUT_EUR o PROJECT_PAYOUT_DASH.

8. Sintesi operativa

  • Pagato ora (anche misto) → niente quota finale.
  • Promessa → quota finale proporzionale.
  • Parziale → solo la parte promessa conta al finale.
  • Prestiti dash → note esterne, regolate da accordi.
  • Tutti i movimenti devono avere un record (tx o nota) per garantire trasparenza.

  • Step progetti

  • finanziamento progetti

  • ripartizione lavoro guadagni

  • Contenuti ricompense per view

  • per compenso iscrizioni a brand

  • per partecipazione

  • per incentivare

  • buoni per lanciare un prodotto al posto dello sconto

  • partecipare al circuito genera impresa

grandissima idea. qui sotto ti lascio una specifica in Markdown (MVP) per una gem/SDK + API che permette di:

scambiare cred_tempo tra istanze aderenti alla cerchia GeneraImpresa (federazione)

accettare pagamenti in cred_tempo (interni), euro/dash (esterni)

usare note/promesse e pagamenti misti

fare clearing tra organizzazioni con DASH (o servizi), senza mai diventare un exchange/custodian

GeneraImpresa — cred_tempo Federation Spec (MVP)

0) Scopo e non-obiettivi

Scopo: abilitare scambi di cred_tempo tra organizzazioni aderenti alla cerchia GeneraImpresa
(“org” o “cerchie”) in modo sicuro, trasparente e non-custodial, con regole comuni.

NON obiettivi (per sicurezza legale):
- Niente conversione cred_tempo ↔ EUR/DASH.
- Niente custodia di fondi (EUR/DASH) per terzi.
- Niente mercato pubblico o tasso di cambio.
- Nessuna promessa “1 cred_tempo = 1 € convertibile”.


1) Concetti chiave

  • cred_tempo: unità interna, ≈ euro come unità di misura, non convertibile.
  • Org: un’associazione/cooperativa/impresa aderente alla cerchia (con un endpoint API e una chiave pubblica).
  • Member: socio/utente registrato presso una singola org.
  • Ledger interno: saldi cred_tempo dei member, mantenuti dall’org.
  • Inter-ledger: conti di clearing tra org (debiti/crediti maturati sugli scambi inter-org).
  • Note/Promesse: registrazioni non-finanziarie (PROMISECREDTEMPO; INVESTORNOTEDASH).
  • Pagamenti esterni: EUR/DASH avvengono fuori dalla piattaforma (PSP/wallet); qui si registrano solo memo.

2) Onboarding alla cerchia GeneraImpresa

  1. Domanda di adesione: accetta il Charter (regole comuni, privacy, limiti).
  2. Verifica identità org + dominio + endpoint API.
  3. PubKey: pubblica chiave per firme (rotazione possibile).
  4. Limiti:
    • member_credit_limit (es. ±300 cred_tempo)
    • org_exposure_cap (es. max 5.000 cred_tempo di esposizione verso altre org)
  5. Directory: l’org appare nell’elenco pubblico (nome, endpoint, pubkey, policy).

3) Tipi di transazione (estesi)

Interne (ledger cred_tempo)

  • SERVICE_PAYMENT_CRED — pagamento immediato in cred_tempo (chiude la partita).
  • PROJECT_STEP_CRED — accredito cred_tempo per step di progetto (pagato ora).
  • REFUND_CRED — rimborso interno.
  • CONTENT_REWARD — accredito per contenuti (views/engagement, regole editoriali).

Esterne (memo, non toccano i saldi cred)

  • SERVICE_PAYMENT_EUR — pagamento in euro (fattura/PSP).
  • SERVICE_PAYMENT_DASH — pagamento in dash (wallet to wallet).
  • PROJECT_PAYOUT_EUR — riparto finale in euro (dopo tasse/spese).
  • PROJECT_PAYOUT_DASH — riparto finale in dash.

Note (promesse/finanziamenti/accordi tra soci)

  • PROMISE_CRED_TEMPOnota di credito interna (step non pagato ora; partecipa al riparto).
  • INVESTOR_NOTE_DASH — prestito/anticipo in dash tra wallet (memo reputazionale).
  • EXTERNAL_SWAP_NOTE — scambio privato cred_tempo↔dash tra soci (memo; nessun impatto su saldi).

Inter-org (federazione)

  • CRED_TRANSFER_INTER — trasferimento cred_tempo tra org (membro A di Org X → membro B di Org Y).
  • CLEARING_SETTLEMENT_DASH — regolazione periodica del saldo tra org in DASH (o accordo in servizi).

4) Regole di pagamento e promesse (riassunto operativo)

  • Pagato ora (cred/euro/dash o misto) → non partecipa al riparto finale.
  • Promessa (PROMISE_CRED_TEMPO) → partecipa al riparto finale in euro netti.
  • Misto = 2 movimenti: una tx cred, una tx eur/dash; entrambi chiudono la loro parte.
  • Prestiti dash: INVESTOR_NOTE_DASH (memo); rimborsi/quote utili definiti nel patto di progetto.

5) Flussi federati (inter-org)

5.1 Trasferimento cred_tempo inter-org (X → Y)

Scopo: il Member A@X paga B@Y in cred_tempo.

1) Intent (prepare) — X crea transfer_intent:
```json
{
"id": "tr01N…",
"type": "CRED
TRANSFERINTER",
"from
member": "A",
"fromorg": "X",
"to
member": "B",
"toorg": "Y",
"amount": 30,
"currency": "CRED
TEMPO",
"reference": {"ticketid":"T-777"},
"expires
at": "2025-09-05T12:00:00Z",
"nonce": "b6f…",
"signature": "sigbyX"
}

X invia l’intent a Y /federation/intents. Y valida:

esistenza B, capienza B e orgexposurecap.

se ok → ACK firmato da Y:

{"intentid":"tr01N…","status":"ACK","signature":"sigbyY"}

Commit (finalize) — X chiama Y /federation/commit con entrambe le firme.

Effetti ledger:

X: A –30, conto di clearing verso Y –30.

Y: conto di clearing verso X +30, B +30.

Entrambe le org persistono un journal idempotente (Idempotency-Key: tr_01N…).

Errori/roll-back: se una parte fallisce dopo commit remoto, il journal idempotente impedisce doppioni; una job di riconciliazione ritenta.

5.2 Clearing tra org (settlement)

Ogni org mantiene netexposure[orgpeer].

Ciclo (es. settimanale):

Se X deve a Y 250 cred_tempo, Y emette invoice di regolazione (non in cred!) o richiede DASH.

Pagamento DASH off-chain; si registra:

{
"type": "CLEARINGSETTLEMENTDASH",
"fromorg": "X",
"to
org": "Y",
"dashamount": 5.3,
"dash
txhash": "0xabc…",
"settles": {"peer":"Y","amount
cred":250}
}

In alternativa: settlement in servizi (barter tra org) → nota di regolazione.

Nota: nessuna org custodisce DASH di terzi. Pagamenti tra org = tra loro wallet.

6) Sicurezza & conformità

Autenticazione: ogni richiesta federata è firmata (Ed25519 o HMAC) + nonce + timestamp.

Idempotenza: header Idempotency-Key.

Rate limit + replay window (es. 5 minuti).

Audit log firmato, esportabile (GDPR: minimizzazione, diritti interessati).

Policy: federation: OFF di default; ON solo dopo accettazione del Charter.

Limiti: membercreditlimit, orgexposurecap, dailyorgoutbound_cap.

7) Tassazione (promemoria operativo)

cred_tempo: scambi interni tra soci → non imponibili finché restano interni.

EUR/DASH: compensi veri → tassabili per chi li riceve (fattura/occasionali; crypto = compenso in natura).

Riparto finale: si fa su euro netti (entrate – spese – tasse stimate).

La gem/SDK fornisce solo calcoli e memo; la fatturazione avviene nel gestionale fiscale dell’org.

8) API (bozze endpoint)
POST /v1/members # crea/aggiorna socio (interno)
POST /v1/ledger/transfercred # transfer interno CRED (stessa org)
POST /v1/promises # PROMISE
CREDTEMPO
POST /v1/notes/external/loan # INVESTOR
NOTE_DASH
POST /v1/payments/mixed # registra pagamento misto (EUR + CRED)

Federazione

POST /v1/federation/intents # ricevi intent firmato (prepare)
POST /v1/federation/commit # conferma transfer inter-org (commit)
POST /v1/federation/settlement # CLEARINGSETTLEMENTDASH (memo di regolazione)
GET /v1/federation/peers # elenco org, pubkey, policy

Campi standard: id, nonce, timestamp, signature, idempotency_key.

9) SDK Ruby — esempi d’uso (pseudo)
client = GI::Client.new(baseurl: ENV["ORGENDPOINT"], keypair: my_keys)

Pagamento misto (ticket)

client.payments.mixed(
ticketid: "T-777",
eur
amount: 40, eurref: "FAT-123",
cred
amount: 30
)

Promessa per step non pagato

client.promises.create(
memberid: "anna",
project
id: "PRJ-42",
amount_cred: 500,
note: "Step 3 - Frontend"
)

Transfer inter-org A@X -> B@Y (federato)

client.federation.transfer(
frommember: "A",
to
member: "B",
toorg: "org-Y",
amount: 30,
reference: { ticket
id: "T-888" }
)

Settlement DASH tra org

client.federation.settledash(
to
org: "org-Y",
dashamount: 5.3,
dash
txhash: "0xabc...",
settles
amount_cred: 250
)

10) Governance della cerchia (Charter sintetico)

Adesione: verifiche minime, accettazione regole, chiavi pubbliche registrate.

Sanzioni: per overdraft ripetuti, replay fraud, chargeback abusivi → sospensione dalla federazione.

Arbitrato: comitato di 3 org estratte a sorte, decisione entro 14 giorni (soft law).

Trasparenza: esposizione pubblica di statistiche aggregate (volumi, default rate).

Recesso: ogni org può uscire; i saldi di clearing devono essere regolati entro 30 gg.

11) UX minima per i professionisti

Directory professionisti di fiducia (con badge org).

Pulsante “Accetta cred_tempo” sui profili.

QR per pagamento: genera richiesta SERVICEPAYMENTCRED (intra) o CREDTRANSFERINTER (inter).

Pannello “Note e Promesse”: elenco PROMISECREDTEMPO e INVESTORNOTEDASH.

Report: “Quanti cred_tempo ho” / “Quanti euro ho incassato” / “Quote finali progetto”.

Perché questa architettura è sicura (e funziona)

  • Gli scambi cred_tempo sono tra soci e tra org aderenti: rete chiusa → mutual credit legittimo.
  • Nessuna conversione: zero rischio e-money/exchange.
  • DASH solo per clearing tra org o pagamenti diretti tra persone → la gemma registra memorie, non custodisce.
  • Fiducia + reputazione: note firmate, audit log, limiti di esposizione, arbitrato.

Se vuoi, ti impacchetto questa spec come README.md per la gem “generaimpresa-cred_tempo” con i primi metodi stub e le strutture dati (Ruby) pronte da incollare.
::contentReference[oaicite:0]{index=0}

Hai detto:
vai
ChatGPT ha detto:

Perfetto 🚀 Ti preparo un README.md di base per la gemma generaimpresa-cred_tempo, con tutte le regole e API che abbiamo discusso.

generaimpresa-cred_tempo

Gemma Ruby per partecipare alla cerchia GeneraImpresa, scambiare cred_tempo tra soci e tra organizzazioni federate, accettare pagamenti interni ed esterni, registrare promesse e note, e gestire i riparti finali dei progetti.


✨ Caratteristiche principali

  • Ledger interno per transazioni cred_tempo.
  • Supporto a pagamenti EUR/DASH come memo esterni (no custodia).
  • Pagamenti misti (es. 40 € + 30 cred_tempo).
  • Note di promessa (PROMISE_CRED_TEMPO) per riparti finali.
  • Note di prestito (INVESTOR_NOTE_DASH) e scambi privati (EXTERNAL_SWAP_NOTE).
  • Federazione inter-org:
    • trasferimenti cred_tempo tra organizzazioni aderenti,
    • conti di clearing,
    • settlement in DASH o servizi.
  • Sicurezza:
    • firme digitali (Ed25519/HMAC),
    • nonce, timestamp, idempotency_key,
    • limiti configurabili per socio e per organizzazione.
  • Trasparenza: audit log firmato, esportabile.

🏗 Installazione

bundle add generaimpresa-cred_tempo


Oppure aggiungi a Gemfile:

gem "generaimpresa-cred_tempo", "~> 0.1.0"

🔑 Concetti base

cred_tempo → unità interna, ≈ euro come misura, non convertibile.

Org → un’associazione/cooperativa/impresa aderente alla cerchia (con API e chiave pubblica).

Member → socio registrato presso una singola org.

Ledger interno → saldi cred_tempo dei member.

Inter-ledger → conti di clearing tra org.

Note/Promesse → registrazioni reputazionali o impegni futuri.

Pagamenti esterni (EUR/DASH) → avvengono fuori, qui si registrano solo memo.

🔄 Tipi di transazione
Interne (ledger cred_tempo)

SERVICE_PAYMENT_CRED — pagamento immediato in cred_tempo.

PROJECT_STEP_CRED — accredito cred_tempo per step di progetto.

REFUND_CRED — rimborso interno.

CONTENT_REWARD — accredito per contenuti (views/engagement).

Esterne (memo, no ledger cred)

SERVICE_PAYMENT_EUR — acquisto in euro (fattura/PSP).

SERVICE_PAYMENT_DASH — acquisto in dash (wallet to wallet).

PROJECT_PAYOUT_EUR — pagamento finale in euro.

PROJECT_PAYOUT_DASH — pagamento finale in dash.

Note

PROMISE_CRED_TEMPO — step non pagato ora, valido per il riparto finale.

INVESTOR_NOTE_DASH — prestito/anticipo in dash (memo reputazionale).

EXTERNAL_SWAP_NOTE — scambio privato cred_tempo↔dash tra soci.

Federazione (inter-org)

CRED_TRANSFER_INTER — trasferimento cred_tempo tra org aderenti.

CLEARING_SETTLEMENT_DASH — regolazione saldi tra org in DASH o servizi.

⚖️ Regole operative

Pagato ora (cred/euro/dash o misto) → partita chiusa, nessuna quota finale.

Promessa (nota in cred_tempo) → partecipa al riparto finale.

Parziale → solo la parte promessa conta al riparto.

Prestiti dash → note esterne, regolate da accordi tra soci/org.

Riparto finale = euro netti (entrate – spese – tasse) distribuiti proporzionalmente alle promesse.

🔌 Esempi d’uso (SDK Ruby)
client = GI::Client.new(base_url: ENV["ORG_ENDPOINT"], keypair: my_keys)

# Pagamento misto (ticket)
client.payments.mixed(
  ticket_id: "T-777",
  eur_amount: 40, eur_ref: "FAT-123",
  cred_amount: 30
)

# Promessa per step non pagato
client.promises.create(
  member_id: "anna",
  project_id: "PRJ-42",
  amount_cred: 500,
  note: "Step 3 - Frontend"
)

# Transfer inter-org A@X -> B@Y
client.federation.transfer(
  from_member: "A",
  to_member:   "B",
  to_org:      "org-Y",
  amount: 30,
  reference: { ticket_id: "T-888" }
)

# Settlement DASH tra org
client.federation.settle_dash(
  to_org: "org-Y",
  dash_amount: 5.3,
  dash_tx_hash: "0xabc...",
  settles_amount_cred: 250
)

🛡 Sicurezza & conformità

Autenticazione: tutte le richieste federate sono firmate.

Nonce + Timestamp: protezione replay.

Idempotency-Key: evita duplicazioni.

Limiti:

member_credit_limit (es. ±300 cred_tempo)

org_exposure_cap (es. max 5.000 cred_tempo verso un’altra org)

daily_org_outbound_cap

⚠️ Avvertenze legali

La gemma non converte cred_tempo in EUR/DASH.

La gemma non custodisce fondi (EUR/DASH restano fuori).

Ogni org aderente è responsabile della propria conformità fiscale e legale.

I compensi in EUR/DASH vanno dichiarati secondo la normativa italiana/europea.

I cred_tempo sono unità di conto interna alla cerchia, non moneta elettronica.

🌐 Governance della cerchia

Adesione: accettazione del Charter e registrazione endpoint/pubkey.

Sanzioni: sospensione per default reiterati o abusi.

Arbitrato: comitato di org estratte a sorte (soft law).

Recesso: ogni org può uscire regolando i saldi entro 30 gg.
---

regolamento,

tipi di transazione,

pagamenti misti,

compensazione contenuti,

federazione,

e i diagrammi Mermaid.

# generaimpresa-cred_tempo

Gemma Ruby e specifica per partecipare alla **cerchia GeneraImpresa**, scambiare `cred_tempo` tra soci e tra organizzazioni federate, accettare pagamenti interni ed esterni, registrare promesse e note, e gestire i riparti finali dei progetti.

---

## ✨ Caratteristiche principali

- Ledger interno per transazioni `cred_tempo`.
- Supporto a pagamenti **EUR/DASH** come memo esterni (no custodia).
- Pagamenti **misti** (es. 40 € + 30 cred_tempo).
- Note di promessa (`PROMISE_CRED_TEMPO`) per riparti finali.
- Note di prestito (`INVESTOR_NOTE_DASH`) e scambi privati (`EXTERNAL_SWAP_NOTE`).
- Federazione inter-org:
  - trasferimenti `cred_tempo` tra organizzazioni aderenti,
  - conti di clearing,
  - settlement in DASH o servizi.
- Modello di compensazione contenuti (views, iscritti, interazioni).
- Sicurezza:
  - firme digitali (Ed25519/HMAC),
  - `nonce`, `timestamp`, `idempotency_key`,
  - limiti configurabili per socio e per organizzazione.
- Trasparenza: audit log firmato, esportabile.

---

## 🔑 Concetti base

- **cred_tempo** → unità interna, ≈ euro come misura, **non convertibile**.
- **Org** → un’associazione/cooperativa/impresa aderente alla cerchia (con API e chiave pubblica).
- **Member** → socio registrato presso una singola org.
- **Ledger interno** → saldi `cred_tempo` dei member.
- **Inter-ledger** → conti di clearing tra org.
- **Note/Promesse** → registrazioni reputazionali o impegni futuri.
- **Pagamenti esterni** (EUR/DASH) → avvengono fuori, qui si registrano solo memo.

---

## ⚖️ Regole operative

- **Pagato ora (cred/euro/dash o misto)** → partita chiusa, nessuna quota finale.  
- **Promessa (nota in cred_tempo)** → partecipa al riparto finale.  
- **Parziale** → solo la parte promessa conta al riparto.  
- **Prestiti dash** → note esterne, regolate da accordi tra soci/org.  
- **Riparto finale** = euro netti (entrate – spese – tasse) distribuiti proporzionalmente alle promesse.  

---

## 🔄 Tipi di transazione

### Interne (ledger `cred_tempo`)
- `SERVICE_PAYMENT_CRED` — pagamento immediato in cred_tempo.
- `PROJECT_STEP_CRED` — accredito cred_tempo per step di progetto.
- `REFUND_CRED` — rimborso interno.
- `CONTENT_REWARD` — accredito per contenuti (views/engagement).

### Esterne (memo, no ledger cred)
- `SERVICE_PAYMENT_EUR` — acquisto in euro (fattura/PSP).
- `SERVICE_PAYMENT_DASH` — acquisto in dash (wallet to wallet).
- `PROJECT_PAYOUT_EUR` — pagamento finale in euro.
- `PROJECT_PAYOUT_DASH` — pagamento finale in dash.

### Note
- `PROMISE_CRED_TEMPO` — step non pagato ora, valido per il riparto finale.
- `INVESTOR_NOTE_DASH` — prestito/anticipo in dash (memo reputazionale).
- `EXTERNAL_SWAP_NOTE` — scambio privato cred_tempo↔dash tra soci.

### Federazione (inter-org)
- `CRED_TRANSFER_INTER` — trasferimento cred_tempo tra org aderenti.
- `CLEARING_SETTLEMENT_DASH` — regolazione saldi tra org in DASH o servizi.

---

## 💶 Pagamenti misti

- Possibile pagare **parte in cred_tempo, parte in euro/dash**.
- Ogni quota viene registrata come transazione separata:
  - es. 40 € (SERVICE_PAYMENT_EUR) + 30 cred (SERVICE_PAYMENT_CRED).
- ✅ Il servizio è considerato pagato.  
- ❌ Nessun diritto al riparto finale (anche la parte in cred è “pagata ora”).  

---

## 🎥 Compensazione contenuti

Un autore può ricevere cred_tempo in base a metriche:

- **Per view**: es. 0.1 cred ogni 100 view.  
- **Per iscritti generati**: es. 1 cred per nuovo socio.  
- **Per tempo di visione**: es. 0.05 cred ogni 10 min.  
- **Per interazioni**: es. 0.01 cred per like/commento.  

Transazioni:
- `CONTENT_REWARD` → accredito cred_tempo per metriche.  
- `CONTENT_BONUS` → accredito extra per milestone.  

---

## 🔌 Esempi d’uso (SDK Ruby)

```ruby
client = GI::Client.new(base_url: ENV["ORG_ENDPOINT"], keypair: my_keys)

# Pagamento misto (ticket)
client.payments.mixed(
  ticket_id: "T-777",
  eur_amount: 40, eur_ref: "FAT-123",
  cred_amount: 30
)

# Promessa per step non pagato
client.promises.create(
  member_id: "anna",
  project_id: "PRJ-42",
  amount_cred: 500,
  note: "Step 3 - Frontend"
)

# Transfer inter-org A@X -> B@Y
client.federation.transfer(
  from_member: "A",
  to_member:   "B",
  to_org:      "org-Y",
  amount: 30,
  reference: { ticket_id: "T-888" }
)

# Settlement DASH tra org
client.federation.settle_dash(
  to_org: "org-Y",
  dash_amount: 5.3,
  dash_tx_hash: "0xabc...",
  settles_amount_cred: 250
)

🛡 Sicurezza & conformità

Autenticazione: tutte le richieste federate sono firmate.

Nonce + Timestamp: protezione replay.

Idempotency-Key: evita duplicazioni.

Limiti:

member_credit_limit (es. ±300 cred_tempo)

org_exposure_cap (es. max 5.000 cred_tempo verso un’altra org)

daily_org_outbound_cap

⚠️ Avvertenze legali

La gemma non converte cred_tempo in EUR/DASH.

La gemma non custodisce fondi (EUR/DASH restano fuori).

Ogni org aderente è responsabile della propria conformità fiscale e legale.

I compensi in EUR/DASH vanno dichiarati secondo la normativa italiana/europea.

I cred_tempo sono unità di conto interna alla cerchia, non moneta elettronica.

🌐 Governance della cerchia

Adesione: accettazione del Charter e registrazione endpoint/pubkey.

Sanzioni: sospensione per default reiterati o abusi.

Arbitrato: comitato di org estratte a sorte (soft law).

Recesso: ogni org può uscire regolando i saldi entro 30 gg.

📊 Diagrammi
Vista generale
flowchart LR
  subgraph Member["Socio / Professionista"]
    M1[Wallet personale DASH]
    M2[Saldo cred_tempo (ledger org)]
  end

  subgraph OrgA["Org A (aderente cerchia)"]
    A1[Ledger cred_tempo]
    A2[API locali]
    A3[Registro Note/Promesse]
    A4[Conto Clearing verso altre org]
  end

  subgraph OrgB["Org B (aderente cerchia)"]
    B1[Ledger cred_tempo]
    B2[API locali]
    B3[Registro Note/Promesse]
    B4[Conto Clearing verso altre org]
  end

  subgraph Federation["Federazione GeneraImpresa"]
    F1[Directory org + PubKey]
    F2[Verifica firme / Idempotenza]
    F3[Policy & Limiti<br/>(member_credit_limit, org_exposure_cap)]
  end

  subgraph Settlement["Clearing / Regolazione"]
    S1[Richiesta settlement]
    S2[Pagamento in DASH (wallet-org ↔ wallet-org)]
    S3[Memo CLEARING_SETTLEMENT_DASH]
  end

  M2 -- SERVICE_PAYMENT_CRED / PROJECT_STEP_CRED --> A1
  M1 -. pagamenti DASH (esterni) .-> A3

  A2 <--> F2
  B2 <--> F2
  F1 --- F2
  F3 --- F2

  A1 <-. CRED_TRANSFER_INTER .-> B1
  A4 <-. aggiorna esposizione .-> B4

  A4 --> S1
  B4 --> S1
  S1 --> S2 --> S3

Pagamento misto
sequenceDiagram
  participant U as Utente
  participant ORG as Org (API locali)
  participant PSP as PSP/Fatture (esterno)
  Note over U,ORG: Servizio valore 70 (40€ + 30 cred_tempo)

  U->>ORG: richiede pagamento misto (ticket T-777)
  ORG->>PSP: avvia pagamento EUR (40€) [SERVICE_PAYMENT_EUR]
  PSP-->>ORG: esito OK + ref fattura
  ORG->>ORG: registra tx cred (30) [SERVICE_PAYMENT_CRED]
  ORG-->>U: ticket confermato

  Note over ORG: Le due tx sono separate ma legate allo stesso ticket

Transfer inter-org (intent/commit)
sequenceDiagram
  participant A as Org A (from)
  participant B as Org B (to)
  participant Fed as Federazione (verifica firme)
  participant Am as Member A@A
  participant Bm as Member B@B

  Note over Am,Bm: A@A paga 30 cred_tempo a B@B

  A->>Fed: PREPARE intent (CRED_TRANSFER_INTER, 30, firma A)
  Fed-->>B: inoltra intent
  B->>Fed: ACK firmato (capienza B e limiti OK)
  Fed-->>A: ACK di B (firma B)

  A->>B: COMMIT (intent + ACK, idempotency-key)
  par Effetto ledger
    A->>A: Am -30 cred / Clearing verso B -30
    B->>B: Clearing verso A +30 / Bm +30 cred
  end
  B-->>A: COMMIT OK (journal idempotente)


https://chatgpt.com/share/68b764fd-c0c4-8002-a6c2-9975ec725b2c