Gli agenti multipli e i modelli multipli di OpenClaw sono due livelli diversi di un unico file di configurazione: più agenti sono voci con chiave sotto agents.entries, ciascuna con il proprio workspace, la propria directory di stato e il proprio archivio delle sessioni, mentre più modelli sono valori model per agente all'interno di tali voci. Accanto a questi si trovano altri due livelli: bindings decide quale agente risponde, mentre una catena di fallback decide cosa fa un agente quando il suo modello fallisce. Modificare il livello sbagliato è il motivo più comune per cui una modifica sembra non produrre alcun effetto.
Eseguire più agenti non costa nulla in termini di software. La panoramica della documentazione di OpenClaw afferma che è sviluppato apertamente dalla "OpenClaw Foundation, un'organizzazione indipendente 501(c)(3)", con "nessun piano a pagamento, nessuna telemetria per impostazione predefinita oltre a un controllo della versione che puoi disattivare, nessun laboratorio ne detiene la proprietà", mentre openclaw.ai aggiunge "Nessun abbonamento. Nessun piano ospitato. Nessun token." Il pacchetto npm openclaw è MIT, con latest a 2026.9.5 accanto a un canale extended-stable alla versione 2026.7.35 e engines.node di >=24.16.0 <25 || >=26.1.0 (registro npm, verificato il 21 settembre 2026). Ciò che un secondo agente aggiunge alla fattura sono i token.
Agenti multipli OpenClaw: quattro livelli e il sintomo di aver modificato quello sbagliato
| Livello | Chiave di configurazione | Che cosa determina | Sintomo quando questo è il livello di cui avevi effettivamente bisogno |
|---|---|---|---|
| Roster degli agenti | agents.entries.<id> | Workspace, directory di stato, archivio delle sessioni, competenze e criteri degli strumenti separati | Due identità continuano a leggere le note e la cronologia dell'altra |
| Routing dei canali | bindings[] | Quale agente risponde a un messaggio in ingresso su quale canale o account | Il routing segnala AGENT_SELECTION_REQUIRED |
| Scelta del modello | agents.entries.<id>.model | Su quale modello vengono eseguiti i turni di quell'agente | Una modifica di /model in una chat ha lasciato invariate tutte le altre chat |
| Catena di fallback | model.fallbacks, agents.defaults.model | Quale modello subentra in caso di errore lato provider | Un errore di overflow del contesto non ha attivato il fallback, perché non è un trigger di failover |
Tutti e quattro sono stati ricavati dalla documentazione di OpenClaw del 21 settembre 2026: voci e multi-agente, binding degli agenti e failover dei modelli. Due strutture dei tutorial più vecchi sono obsolete: un roster ad array agents.list è la forma legacy migrata da Doctor, e il marcatore default: true su una voce è stato ritirato: la pagina delle voci dichiara chiaramente che "default è stato ritirato" e che le operazioni multi-agente richiedono un binding o una destinazione esplicita. OpenClaw ha inoltre avuto due nomi precedenti, quindi qualsiasi configurazione dell'epoca Moltbot o Clawdbot precede questo schema.
Configurazione di più agenti OpenClaw: una configurazione minima con due agenti e due modelli
Questo frammento presuppone che tu disponga già di un blocco models.providers funzionante: la migliore API per OpenClaw contiene quella di Kunavo, inclusa api: "anthropic-messages" e l'URL di base pubblicato in URL di base Anthropic. Quanto segue riguarda solo il livello degli agenti e del routing.
{
"agents": {
"defaults": {
"modelSelectionScope": "session",
"model": {
"primary": "kunavo/claude-haiku-4-5",
"fallbacks": [
"kunavo/claude-sonnet-5"
]
}
},
"entries": {
"ops": {
"name": "Ops",
"workspace": "~/.openclaw/workspace-ops",
"agentDir": "~/.openclaw/agents/ops/agent",
"model": "kunavo/claude-haiku-4-5",
"modelPolicy": {
"allow": [
"kunavo/claude-haiku-4-5"
]
}
},
"build": {
"name": "Build",
"workspace": "~/.openclaw/workspace-build",
"agentDir": "~/.openclaw/agents/build/agent",
"model": {
"primary": "kunavo/claude-opus-5",
"fallbacks": [
"kunavo/claude-sonnet-5"
]
},
"utilityModel": "kunavo/claude-haiku-4-5"
}
}
},
"bindings": [
{
"agentId": "build",
"match": {
"channel": "discord",
"accountId": "build"
}
},
{
"agentId": "ops",
"match": {
"channel": "discord",
"accountId": "*"
}
}
]
}In quel blocco quattro elementi sono essenziali. Ogni agente ha il proprio agentDir, perché la pagina multi-agente avverte: "Non riutilizzare mai agentDir tra agenti: causa collisioni nello stato di autenticazione/sessione." L'agente ops usa la forma stringa di model, che la pagina delle voci definisce "un primario rigoroso per agente senza fallback del modello": pertanto un errore viene mostrato invece di spostare silenziosamente il lavoro ordinario su una fascia più costosa. L'agente build usa la forma oggetto con un elenco fallbacks esplicito, che è il modo per abilitarlo; la pagina sul failover aggiunge che un agente può impostare da solo model: { fallbacks: [...] } e continuare a ereditare il primario condiviso. Il binding specifico si trova sopra il wildcard perché, all'interno di un livello di corrispondenza, "vince la prima voce bindings corrispondente".
I default del workspace differiscono tra l'agente predefinito e gli altri, ed è utile impostarli esplicitamente: il workspace dell'agente predefinito è <stateDir>/workspace, mentre per gli altri il default è <stateDir>/workspace-<agentId>. La memoria segue il workspace, poiché il motore integrato di OpenClaw "ricorda le cose scrivendo file Markdown semplici nel workspace del tuo agente": isolare i workspace significa quindi isolare la memoria. Le modalità di autorizzazione della sessione costituiscono un asse ancora separato: read-only, guarded, workspace e full, dove "full richiede operator.admin. Le altre modalità richiedono operator.write" (modalità di autorizzazione, 21 settembre 2026). Un modello economico su un agente permissivo resta comunque un agente permissivo.
Che cosa separano gli agenti distinti e che cosa invece non separano
| Elemento | Per agente? | Dove risiede |
|---|---|---|
| File del workspace e memoria Markdown | Sì | agents.entries.*.workspace |
| Cronologia delle chat | Sì | <agentDir>/openclaw-agent.sqlite |
| Profili di autenticazione memorizzati | Sì | agentDir; le modifiche all'autenticazione richiedono --agent |
| Skill | Sì | Un elenco agents.entries.*.skills esplicito sostituisce i default anziché unirsi a essi |
| Strumenti, sandbox, privilegi elevati | Sì | Esistono chiavi per agente, ma la precedenza varia per chiave: tools.elevated, ad esempio, "può solo restringere ulteriormente" |
| Modello primario, fallback, allowlist | Sì | agents.entries.*.model, .modelPolicy.allow |
Provider baseUrl, apiKey, dialetto | No | models.providers è esteso all'intero Gateway |
| Chiavi del provider dall'ambiente | No | Un processo Gateway, un ambiente |
openclaw models set | No | Globale; rifiuta --agent e scrive i default dell'agente |
Questo è il limite che le tabelle dei prezzi non evidenziano. Voci separate forniscono file, memoria, cronologia, criteri degli strumenti e profili di autenticazione memorizzati separati. Da sole non forniscono a ciascun agente una chiave API propria per un provider personalizzato configurato nell'ambiente: lo schema documentato per agente non contiene affatto i campi baseUrl, apiKey o providers. L'assenza nella documentazione non dimostra che il codice lo vieti, quindi interpretalo come non documentato; se ti serve una separazione rigida delle chiavi per tenant, esegui Gateway separati. Un limite correlato riguarda l'identità: l'esempio di OpenClaw sulla suddivisione dei DM WhatsApp osserva che "le risposte provengono comunque dallo stesso numero WhatsApp: non esiste un'identità mittente per agente" e che "le chat dirette confluiscono per impostazione predefinita nella chiave della sessione principale dell'agente, quindi per una vera separazione è necessario un agente per persona". Questa frase è riferita a WhatsApp; consulta la pagina del tuo canale prima di generalizzarla.
Un limite di capacità da considerare mentre suddividi i ruoli: Kunavo non offre modelli di sintesi vocale, trascrizione vocale o embedding, quindi un agente che necessita di output vocale o di un indice vettoriale deve chiamare un provider esterno per quel passaggio.
Più modelli OpenClaw: rigorosità, fallback, criteri e percorso utility
La selezione del modello per agente dispone di quattro controlli che vale la pena impostare deliberatamente. model come stringa è rigoroso. { primary, fallbacks: [...] } abilita l'agente al failover. modelPolicy.allow è un'allowlist che "sostituisce il criterio predefinito per quell'agente", accettando alias, riferimenti esatti e wildcard finali: è così che impedisci a un agente ordinario di raggiungere un modello costoso. E utilityModel è un modello separato, di norma più economico, per "brevi attività interne come i titoli generati di sessioni e thread", con una sostituzione per agente.
L'elenco dei trigger documentati è specifico. OpenClaw procede in caso di "errori di autenticazione, limiti di frequenza ed esaurimento del cooldown, errori di sovraccarico/provider occupato, errori di failover con forma di timeout, disattivazioni per fatturazione, model_not_found", e in caso di altri errori non riconosciuti quando restano candidati; non procede però per errori di overflow del contesto, che restano nella logica di compattazione e ritentativo, né per "interruzioni esplicite che non hanno forma di timeout/failover". Al di fuori delle conversazioni di gruppo e di canale è visibile: queste superfici pubblicano un avviso di stato nella forma Model Fallback: <fallback> (selected <primary>; <reason>) e un avviso di cancellazione corrispondente, mentre le conversazioni di gruppo e di canale "sopprimono gli avvisi visibili mantenendo lo stesso stato di fallback"; quindi non fare affidamento sul fatto di vederne uno in una stanza condivisa. Una selezione esplicita della sessione — /model, il selettore del modello, session_status(model=...) o sessions.patch — è rigorosa: se quel modello fallisce prima di produrre una risposta, OpenClaw segnala il fallimento invece di rispondere usando un fallback configurato. --model di un job cron non è uno di questi casi; la documentazione lo definisce un primario del job che continua a usare i fallback configurati, salvo che il job imposti payload.fallbacks: [].
Altri due meccanismi determinano se la tua intenzione viene mantenuta. I parametri della richiesta vengono uniti attraverso quattro livelli, da agents.defaults.params a agents.entries.*.params, con i livelli successivi che sovrascrivono per chiave. Anche il parallelismo ha un limite calcolato: agents.defaults.maxConcurrent ha come default max(8, available CPU parallelism * 4) tra le sessioni, mentre ogni sessione rimane serializzata: due messaggi allo stesso agente non vengono eseguiti contemporaneamente. Per scegliere quale modello assegnare a ciascun ruolo, Opus vs Sonnet vs Haiku copre l'aspetto delle capacità.
Attribuzione dei costi per percorso, non per agente
Poiché nessun comando documentato riporta la spesa per agente, attribuiscila per percorso. L'aritmetica seguente è illustrativa, non una fattura misurata e non un limite massimo. Presuppone un mese di 30 giorni, il default documentato dell'heartbeat 30m (1.440 esecuzioni), 300 token di output per heartbeat, nessun hit della cache e un percorso di conversazione principale con 8M token di input e 500K token di output. Le cifre di contesto di circa 100K e circa 2–5K per esecuzione sono l'illustrazione di OpenClaw di ciò che isolatedSession rimuove, non qualcosa di misurato qui; 3.000 è il punto medio. Le tariffe sono prezzi attuali del catalogo Kunavo per milione di token.
| Percorso | Input/output mensili ipotizzati | A Claude Haiku 4.5 | A Claude Opus 5 |
|---|---|---|---|
| Heartbeat nella sessione condivisa, intervallo di 30m | 144,00M / 0,43M | $102,31 | $511,56 |
| Lo stesso heartbeat con isolatedSession: true | 4,32M / 0,43M | $4,54 | $22,68 |
| Turni della conversazione principale | 8,00M / 0,50M | $7,35 | $36,75 |
| Titoli e riepiloghi di utilityModel | 0,20M / 0,02M | $0,21 | $1,05 |
Claude Haiku 4.5 elenca $0,70 / $3,50, mentre Claude Opus 5 elenca $3,50 / $17,50 per milione di token di input/output nel catalogo attuale. L'interpretazione importante è questa: secondo queste ipotesi, il percorso pianificato è predominante. Un heartbeat in sessione condivisa sul modello potente equivale a $511,56 al mese, contro $4,54 per la stessa cadenza con isolatedSession: true sul modello economico. OpenClaw lo afferma esplicitamente: "Gli heartbeat eseguono turni completi dell'agente. Intervalli più brevi consumano più token"; indica inoltre isolatedSession, lightContext, un model più economico e target: "none" come leve.
Il trucco dell'heartbeat economico ha una modalità di errore documentata, ed è per questo che isolatedSession è una leva migliore del solo cambio di modello. Gli heartbeat "conservano il modello runtime esistente della sessione condivisa al termine dell'esecuzione", quindi un heartbeat che ha trasferito una sessione a un modello più piccolo può lasciarla in quello stato per il turno successivo della sessione principale, che potrebbe poi segnalare un overflow del contesto: il messaggio di recupero di OpenClaw lo chiama propagazione del modello dell'heartbeat. L'esempio svolto nella documentazione riguarda un modello locale con una finestra di 32k, quindi l'entità del rischio dipende da quanto è più piccola la finestra di contesto del modello dell'heartbeat rispetto alle esigenze della sessione condivisa. Una nota sulla pianificazione: l'intervallo predefinito documentato è 30m, portato a 1h solo quando la modalità di autenticazione risolta è Anthropic OAuth/token; pertanto un percorso con semplice chiave API mantiene 30m, salvo impostare personalmente heartbeat.every. Verifica il tuo valore prima di definire il budget.
Due avvertenze sulle cifre in dollari. L'importo del catalogo Kunavo è un limite minimo di fatturazione, non un tetto: quando l'upstream comunica il proprio addebito, la fattura è il maggiore tra il costo del catalogo e il costo upstream moltiplicato per il markup applicabile. Inoltre, un provider personalizzato dichiarato senza un oggetto cost per modello rende inutilizzabile la lettura di OpenClaw: il default è cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, mostrando $0 mentre il fornitore fattura normalmente. Dichiara cost, contextWindow e maxTokens per ogni modello aggiunto e riconcilia con il registro del provider. Il ricarico minimo di Kunavo è $10 di credito prepagato: un minimo di finanziamento, non una tariffa per attività né un abbonamento. Consulta dettagli sulla fatturazione e ottimizzazione dei costi AI.
Quale percorso di acquisto è adatto a un Gateway multi-agente
| Percorso | Vantaggioso quando | A cosa rinunci |
|---|---|---|
| Un Gateway, un provider in stile gateway | Più agenti su più famiglie di modelli, una chiave e un saldo | Nessuna separazione delle chiavi per agente; definizioni dei provider e chiavi dell'ambiente condivise |
| Un Gateway, profili di autenticazione memorizzati per agente | Vuoi che ogni agente disponga della propria credenziale nel proprio agentDir | Documentato solo per i profili di autenticazione: le sostituzioni dell'endpoint per agente non sono presenti nello schema pubblicato |
| Gateway separati per tenant | Il requisito è una separazione rigida di chiavi, ambiente e spesa | Due processi, due configurazioni, due percorsi di aggiornamento |
| Account diretto del fornitore per agente | Un solo fornitore per tutto il giorno e desideri usare le funzioni di caching e batch proprie di quel fornitore | Un'altra famiglia significa un altro account; ciascuno ha tariffe e controlli propri |
| Modello locale sul percorso pianificato | Controlli heartbeat delimitati senza addebito per richiesta | Hardware e manutenzione, oltre all'avvertenza sulla propagazione del modello dell'heartbeat riportata sopra |
| Agente in abbonamento | Un uso quotidiano intenso a tariffa fissa si adatta meglio a te rispetto ai token a consumo | OpenClaw non vende alcun abbonamento proprio; sarebbe un client diverso |
Una nota sui dialetti, perché è nella cache che si concentra il risparmio. Il blocco Kunavo nella guida correlata dichiara api: "anthropic-messages", che OpenClaw tratta come un endpoint Anthropic non diretto. Ne conseguono due conseguenze documentate. Le intestazioni beta implicite di Anthropic vengono soppresse su tali endpoint, quindi funzioni come il thinking interleaved devono essere abilitate tramite un esplicito headers["anthropic-beta"] anziché automaticamente. E il caching deve essere richiesto: OpenClaw imposta cacheRetention: "short" solo per i provider diretti anthropic e anthropic-vertex, mentre gli "endpoint compatibili con anthropic-messages personalizzato" sono supportati "quando cacheRetention è impostato esplicitamente": quindi imposta personalmente params.cacheRetention anziché presumere un default (caching dei prompt, 21 settembre 2026). Una regola distinta riguarda l'altro dialetto: un percorso openai-completions verso un endpoint non nativo invia "nessun suggerimento sulla cache dei prompt". Verifica l'utilizzo della cache riportato sul tuo percorso prima di considerare il contesto ricorrente come hit della cache. Caching dei prompt copre l'aspetto delle tariffe.
Verifica che sia arrivato dove intendevi
openclaw config validate
openclaw gateway restart
openclaw agents list --bindings
openclaw models status --agent ops --json --check
openclaw models list --agent buildLa convalida della configurazione verifica la struttura, mentre il riavvio del gateway la ricarica; nessuno dei due dimostra che una richiesta fatturata sia riuscita. openclaw agents list --bindings mostra il routing effettivamente caricato: preferiscilo a --tree, che compare nelle pagine dei concetti ma non nella tabella dei comandi CLI. openclaw models status --agent <id> spiega il default configurato di quell'agente, mentre models list --agent <id> mostra il suo inventario. Se models set termina con un codice diverso da zero per un provider sconosciuto, il problema riguarda il livello del modello: il provider deve essere un plugin installato o essere dichiarato sotto models.providers. Se i messaggi non raggiungono alcun agente, il problema riguarda il livello del routing. Se compaiono esecuzioni duplicate quando più agenti condividono un canale, OpenClaw documenta le chiavi di protezione dai loop dei bot come salvaguardia: la documentazione descrive la prevenzione, non una causa principale, quindi esegui la diagnosi prima di dare per scontato il problema.
Esegui quindi un’attività con limiti definiti per ogni agente e leggi l’addebito registrato dal tuo account presso il provider. Kunavo non ha testato OpenClaw in runtime, né in configurazione con agente singolo né multi-agente: tutto quanto sopra è tratto dalla documentazione pubblicata di OpenClaw, e una configurazione pubblicata non costituisce un test di compatibilità. Mantieni disponibile un percorso funzionante mentre lo provi. Parti dalla configurazione del provider, confronta il conto operativo completo in prezzi di OpenClaw e crea un account Kunavo quando sei pronto a finanziare una chiave.
Domande frequenti
Come configuro più agenti in OpenClaw?
Aggiungi una voce con chiave per ogni agente in agents.entries, assegna a ciascuno il proprio workspace e il proprio agentDir, quindi aggiungi un array bindings affinché i messaggi in ingresso vengano indirizzati a un agente. La documentazione di OpenClaw è esplicita: agentDir non deve mai essere condiviso: "Non riutilizzare mai `agentDir` tra agenti: causa collisioni nello stato di autenticazione/sessione." L'equivalente CLI è `openclaw agents add <id>` con --workspace, --agent-dir, --model e un --bind ripetibile. Due strutture che potresti incontrare nei tutorial più vecchi non sono aggiornate: un roster agents.list è la forma legacy migrata da Doctor, e il marcatore `default: true` su una voce è stato ritirato: la selezione multi-agente ora avviene tramite un binding o una destinazione esplicita. Consultato su docs.openclaw.ai il 21 settembre 2026; non testato a runtime qui.
Ogni agente OpenClaw può usare un modello diverso?
Sì. agents.entries.<id>.model imposta il modello primario di quell'agente, e la forma utilizzata determina se può effettuare il fallback. La documentazione di OpenClaw stabilisce che la "forma stringa imposta un primario rigoroso per agente senza fallback del modello; anche la forma oggetto { primary } è rigorosa, salvo aggiungere fallback". Pertanto, una stringa semplice per il modello di un agente fa sì che un errore del provider venga mostrato come errore anziché spostare silenziosamente l'agente su un'altra fascia di prezzo. Usa { primary, fallbacks: [...] } per abilitare esplicitamente il fallback per un agente e { primary, fallbacks: [] } per rendere esplicito il comportamento rigoroso. I riferimenti ai modelli sono sempre qualificati dal provider come provider/model. Verificato il 21 settembre 2026.
Ogni agente può avere una propria chiave API o un proprio endpoint del provider?
L'endpoint no, non secondo lo schema per agente documentato; la credenziale sì. models.providers — dove risiedono baseUrl, apiKey e il dialetto API — è un blocco esteso all'intero Gateway, quindi ogni agente in un Gateway condivide le stesse definizioni dei provider, e una chiave scritta lì come riferimento a una variabile d'ambiente viene risolta dall'ambiente del processo di quell'unico Gateway. Lo schema della voce per agente pubblicato il 21 settembre 2026 non contiene alcun campo baseUrl, apiKey o providers, e agents.entries.*.models contiene solo params, agentRuntime e codeMode. Ciò che è specifico per agente è il profilo di autenticazione memorizzato nell'agentDir di quell'agente, che contiene credenziali api_key, token e OAuth: i sottocomandi di autenticazione models accettano --agent, e le modifiche all'autenticazione lo richiedono quando sono configurati più agenti. L'assenza nella documentazione non dimostra che il codice vieti un endpoint per agente, quindi considera l'aspetto dell'endpoint come non documentato, non impossibile. Se ti serve una separazione rigida per tenant, esegui Gateway separati.
Perché cambiare il modello nella chat non ha cambiato nulla?
Perché l'ambito di scrittura predefinito è la sessione in cui hai digitato. OpenClaw documenta che agents.defaults.modelSelectionScope è impostato per default su "session": "cambiare un modello in una chat non cambia le altre chat né il default configurato, anche quando il chiamante è un proprietario/amministratore". Usa /model con -a/--agent per scrivere il modello primario dell'agente oppure -g/--global per il default condiviso. Nota inoltre che la CLI `openclaw models set` è globale e rifiuta --agent, quindi non può essere usata per impostare il modello di un singolo agente: modifica invece agents.entries.<id>.model. Comportamento documentato verificato il 21 settembre 2026.
Che cosa significa AGENT_SELECTION_REQUIRED?
Significa che il routing non ha trovato alcun binding per quel messaggio in ingresso e si è rifiutato di scegliere arbitrariamente. La documentazione di OpenClaw stabilisce che, con più agenti configurati, "se nessuno è disponibile in una configurazione multi-agente, il routing segnala AGENT_SELECTION_REQUIRED e chiede di aggiungere un binding". L'ordine di corrispondenza documentato è match.peer, match.guildId, match.teamId, una corrispondenza esatta di match.accountId, quindi accountId "*"; termina con un fallback a un solo agente che si applica "solo quando è configurato esattamente un agente; le configurazioni multi-agente esplicite senza un binding corrispondente falliscono in modo chiuso". Non esiste un proprietario catch-all quando hai due agenti. All'interno di un livello, "vince la prima voce bindings corrispondente", quindi inserisci le regole specifiche prima di quelle generali. Ispeziona ciò che è effettivamente caricato con `openclaw agents list --bindings`. Verificato il 21 settembre 2026.
Come vedo quanto costa ciascun agente OpenClaw?
Al 21 settembre 2026 non è documentato alcun comando che riporti la spesa suddivisa per agente, quindi attribuiscila per modello e per percorso: turni principali, esecuzioni heartbeat, percorso utilityModel e sottoagenti generati. Due avvertenze sulle cifre locali. Le letture in dollari di OpenClaw sono stime calcolate sui propri metadati locali dei prezzi; le superfici di utilizzo recuperano i dati del piano e della spesa riportati dal provider quando questo li espone, ma l'analisi dei costi per sessione deriva dalla sessione; inoltre /usage cost avverte che i totali Today e Last 30d possono essere incompleti mentre la cache aggregata viene aggiornata, parziale o obsoleta. E per un provider personalizzato dichiarato senza un oggetto di costo per modello, OpenClaw imposta per default cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }: una lettura di $0 per richieste che il fornitore fattura normalmente. Riconcilia con il registro del provider, non con il piè di pagina della chat.
Documentazione di OpenClaw, riferimento CLI e voce del registro npm verificati il 21 settembre 2026 alla versione del pacchetto 2026.9.5; qui non sono stati eseguiti Gateway, agenti, binding né richieste a pagamento. Le tariffe dei token Kunavo sono lette dal catalogo attivo e ogni cifra in dollari su questa pagina è un calcolo illustrativo dei token, non un conto misurato.