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
oPROJECT_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
- Domanda di adesione: accetta il Charter (regole comuni, privacy, limiti).
- Verifica identità org + dominio + endpoint API.
- PubKey: pubblica chiave per firme (rotazione possibile).
- Limiti:
member_credit_limit
(es. ±300 cred_tempo)org_exposure_cap
(es. max 5.000 cred_tempo di esposizione verso altre org)
- 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_TEMPO
— nota 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": "CREDTRANSFERINTER",
"frommember": "A",
"fromorg": "X",
"tomember": "B",
"toorg": "Y",
"amount": 30,
"currency": "CREDTEMPO",
"reference": {"ticketid":"T-777"},
"expiresat": "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",
"toorg": "Y",
"dashamount": 5.3,
"dashtxhash": "0xabc…",
"settles": {"peer":"Y","amountcred":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 # PROMISECREDTEMPO
POST /v1/notes/external/loan # INVESTORNOTE_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",
euramount: 40, eurref: "FAT-123",
credamount: 30
)
Promessa per step non pagato
client.promises.create(
memberid: "anna",
projectid: "PRJ-42",
amount_cred: 500,
note: "Step 3 - Frontend"
)
Transfer inter-org A@X -> B@Y (federato)
client.federation.transfer(
frommember: "A",
tomember: "B",
toorg: "org-Y",
amount: 30,
reference: { ticketid: "T-888" }
)
Settlement DASH tra org
client.federation.settledash(
toorg: "org-Y",
dashamount: 5.3,
dashtxhash: "0xabc...",
settlesamount_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.
- trasferimenti
- 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