Torna alle guide
Agenti di programmazione·21 settembre 2026·Aggiornato il 1 ottobre 2026·11 min di lettura

Limiti dei token di OpenManus ed errore Unknown BrowserUseTool: uno è attivo, l'altro è scomparso

OpenManus non genera errori di limite dei token finché non abiliti esplicitamente il limite — e l'errore BrowserUseTool fa riferimento a una classe eliminata dal progetto nell'agosto 2026.

Ultima revisione: .

OpenManus non impone alcun limite di token per impostazione predefinita. Il suo limite è max_input_tokens, che app/config.py dichiara come Optional con valore predefinito None e descrizione "Numero massimo di token di input da utilizzare per tutte le richieste (None per illimitato)" e che non compare in alcun esempio di configurazione distribuito. Pertanto un’installazione standard non genera mai un errore di limite dei token: qualsiasi errore riscontrato proveniva dal provider. Quando lo imposti, si comporta in due modi inattesi e un difetto presente nell’attuale main lo fa fallire lentamente anziché subito.

L’altro errore trattato in questa pagina, Error: Unknown tool 'BrowserUseTool', non è affatto un bug attivo. La classe a cui si riferisce è stata eliminata da OpenManus il 15 agosto 2026 e l’agente Manus predefinito nell’attuale main non registra localmente alcuno strumento browser. Nessuno dei due sintomi è un problema di chiave API, endpoint o provider, e reindirizzare base_url non risolve né l’uno né l’altro.

Una nota d’impostazione prima di tutto. Non esiste una versione di OpenManus da citare: gli unici tre tag, v0.1.0, v0.2.0 e v0.3.0, sono stati pubblicati tutti nell’arco di 34 secondi il 10 aprile 2025 e da allora non è stato creato alcun tag, quindi tutti eseguono il ramo main senza tag. Il repository canonico è FoundationAgents/OpenManus, non archiviato, con licenza MIT, 58.371 stelle e ultimo push il 22 agosto 2026 (API GitHub, 21 settembre 2026). Il vecchio percorso mannaandpoem/OpenManus ora contiene solo un README segnaposto che indica lo spostamento del progetto, quindi i percorsi dei file e i numeri di riga citati nei tutorial del 2025 rimandano a codice che non si trova più lì. Tutto ciò che segue è stato letto dal sorgente sul ramo main il 21 settembre 2026 e non è stato eseguito.

Quale dei quattro messaggi hai effettivamente ricevuto

Cosa vediChi lo stampaSignificato
Maximum token limit reached, cannot continue execution: Request may exceed input token limit (Current: …, Needed: …, Max: …)OpenManus, app/agent/toolcall.pyÈ stato raggiunto il limite max_input_tokens configurato per la tua esecuzione. Non è stata inviata alcuna richiesta
Un errore di lunghezza del contesto o dei token che indica il modelloIl tuo provider, esposto tramite OpenAIErrorLa richiesta ha superato la finestra di contesto del modello o il limite specifico dell’endpoint. Non è correlato al limite di OpenManus
Error: Unknown tool 'X'OpenManus, righe 179–181 di app/agent/toolcall.pyIl modello ha nominato uno strumento assente da available_tools.tool_map. Viene restituito come risultato dello strumento, quindi il ciclo continua e consuma un passaggio
Failed to connect to Browser Use CLI 3.0: …OpenManus, riga 99 di app/agent/manus.pyIl server MCP browser predefinito non è stato avviato. L’esecuzione continua: l’agente Manus mantiene i suoi quattro strumenti locali, oltre agli eventuali altri server MCP configurati

Il dispatch che produce la terza riga occupa tre righe ed è invariato dalla riscrittura del browser del 2026: name = command.function.name, poi if name not in self.available_tools.tool_map: return f"Error: Unknown tool '{name}'". Non contiene nulla di specifico per i browser, quindi la stessa stringa compare per qualsiasi strumento inventato dal modello.

Il limite dei token è facoltativo, cumulativo e approssimativo

Tre numeri diversi vengono chiamati "il limite dei token" e il messaggio di errore riguarda sempre e solo uno di essi.

ImpostazioneChe cosa limitaPredefinitoNell’esempio distribuito?
max_tokensUna risposta4096 nel codiceSì — impostato su 8192
max_input_tokensInput cumulativo nell’intera esecuzioneNone, cioè illimitatoNo. Devi aggiungerlo manualmente, altrimenti non si applica
La finestra di contesto del modelloUna richiesta, presso il providerQuello del modelloNon è affatto un’impostazione di OpenManus

La seconda riga è quella che sorprende. LLM.check_token_limit() in app/llm.py restituisce (self.total_input_tokens + input_tokens) <= self.max_input_tokens, cioè un totale progressivo per la sessione, non un controllo su una singola richiesta. Di conseguenza, un’esecuzione lunga dell’agente lo supera per accumulo anche quando ogni singola richiesta è piccola, e il testo dell’errore esplicita l’aritmetica: corrente, necessario, massimo. L’agente Manus predefinito imposta max_steps = 20 e a ogni passaggio reinvia la conversazione accumulata, quindi la cifra cumulativa cresce più rapidamente del numero di passaggi.

Il conteggio è inoltre una stima propria di OpenManus. LLM.__init__ chiama tiktoken.encoding_for_model(self.model) e, in caso di KeyError, ricade su cl100k_base, quindi per qualsiasi ID modello per cui tiktoken non ha un preset — un ID Claude o Gemini, oppure uno con namespace del gateway — il budget applicato è un’approssimazione anziché il conteggio del provider.

config/config.toml
# config/config.toml
[llm]
model = "claude-sonnet-4-6"
base_url = "https://api.kunavo.com/v1"
api_key = "sk-kn-..."

# The RESPONSE cap. Ships as 8192 in config.example.toml; the code default is 4096.
max_tokens = 8192

# The CUMULATIVE INPUT budget for the whole run. Absent from every shipped
# example, and None in code — so a stock install enforces no ceiling at all.
max_input_tokens = 400000

Quanto vale economicamente un limite

Poiché max_input_tokens limita l’input cumulativo, si converte direttamente in un tetto di costo per il lato input di una singola esecuzione. Le cifre seguenti sono aritmetica illustrativa dei token sul limite indicato, non il costo misurato di un’attività né un tetto di fatturazione: valorizzano i token di input che l’impostazione limita, alle tariffe correnti del catalogo Kunavo per milione. L’output non è coperto da questa impostazione: l’ultima colonna valorizza una risposta al max_tokens = 8192 distribuito nella configurazione di esempio, e un’esecuzione di venti passaggi può produrne venti.

ModelloInput / output per 1MInput con un limite 100.000Input con un limite 400.000Una risposta di 8.192 token
Claude Haiku 4.5$0,70 / $3,50$0,070$0,280$0,029
GPT-5.6 Terra$0,70 / $4,20$0,070$0,280$0,034
Claude Sonnet 4.6$2,10 / $10,50$0,210$0,840$0,086
Claude Opus 5$3,50 / $17,50$0,350$1,400$0,143

Due interpretazioni. Un limite è un arresto, non un budget: indica quanto può costare al massimo il lato input di un’esecuzione e non dice nulla sul completamento dell’attività. Inoltre, poiché OpenManus conta con tiktoken, il limite applicato e i token fatturati dal provider sono due misurazioni diverse: imposta il numero per contenere un ciclo fuori controllo, poi confrontalo con ciò che il tuo account ha effettivamente registrato. L’importo del catalogo Kunavo è un minimo di fatturazione, non un tetto: quando l’upstream comunica il proprio addebito, la fattura è il maggiore tra il costo di catalogo e il costo upstream moltiplicato per il markup applicabile. Il ricarico minimo Kunavo è $10 di credito prepagato, un minimo di finanziamento e non una tariffa per attività o un abbonamento: consulta i dettagli sulla fatturazione.

Perché l’errore dei token arriva in ritardo

Si tratta di un difetto leggibile nell’attuale main ed è il motivo per cui un errore di limite dei token sembra un blocco. Tutti e tre i decoratori @retry in app/llm.py — su ask, ask_with_images e ask_tool — sono scritti nello stesso modo:

Che cosa dichiara il decoratoreChe cosa intercettaConseguenza
Commento finale: # Don't retry TokenLimitExceededretry_if_exception_type((OpenAIError, Exception, ValueError))TokenLimitExceeded eredita da OpenManusError, che eredita da Exception: quindi la voce generica Exception lo intercetta
Commento nel punto di sollevamento: # Raise a special exception that won't be retriedstop_after_attempt(6), wait_random_exponential(min=1, max=60)Fino a sei tentativi con backoff esponenziale prima che l’errore emerga, ricalcolando ogni volta lo stesso totale che fallisce

Il ciclo dell’agente a valle conferma questa struttura anziché contraddirla. app/agent/toolcall.py intercetta l’eccezione e verifica isinstance(e.__cause__, TokenLimitExceeded): questo scartamento tramite __cause__ è il modo in cui arriva un RetryError di tenacity, e la sua stessa riga di log recita "Token limit error (from RetryError)". Solo allora aggiunge il messaggio visibile all’utente "Maximum token limit reached, cannot continue execution" e imposta lo stato dell’agente su finished. In altre parole, il codice che consuma il risultato presuppone già il retry che il commento del decoratore dice di non eseguire.

Non esiste alcuna correzione integrata. La PR #1348, intitolata "fix: prevent needless retry of TokenLimitExceeded and fix search engine fallback", è stata chiusa senza merge il 10 agosto 2026; la sua ripresentazione #1407 era ancora aperta e senza merge il 21 settembre 2026. Una PR correlata sul superamento del contesto, #1391, "add tool description token budget to prevent context overflow", è stata chiusa senza merge il 18 agosto 2026. Qui non è stato verificato perché i manutentori le abbiano chiuse, ma solo che non sono state unite. La segnalazione storica, issue #779 "hitting token limit" del 17 marzo 2025, è stata chiusa il 17 settembre 2026 da un bot di inattività con state_reason: not_planned: un timeout, non una risoluzione. Finché una di queste modifiche non viene integrata, le mitigazioni pratiche sono lasciare max_input_tokens non impostato e lasciare che sia il provider a rifiutare le richieste troppo grandi, oppure impostarlo e accettare il ritardo.

Unknown tool 'BrowserUseTool' è un errore proveniente da una versione che non esiste più

Issue #789, "Result: Error: Unknown tool 'BrowserUseTool'", è stata aperta il 18 marzo 2025 ed era ancora aperta il 21 settembre 2026, contrassegnata come inactive. La causa non è mai stata un endpoint o una chiave. Il log del segnalatore mostra il modello emettere il nome della classe Python, BrowserUseTool, mentre il nome dello strumento registrato era browser_use; il passaggio immediatamente successivo della stessa esecuzione è stato eseguito correttamente quando ha chiamato browser_use. Il log riportato termina con "Activating tool: 'browser_use'" e la riga conclusiva contiene l’intera diagnosi: "BrowserUseTool seems not work, but browser_use can". L’unico consiglio dato da un commentatore è stato provare un modello più potente, che è il tipo di risposta corretto per un problema di fedeltà nel tool calling.

Questa diagnosi non si applica all’attuale main, perché non esiste più alcuno strumento denominato browser_use da chiamare correttamente. Il 15 agosto 2026 i commit ab8dfe43 ("feat(browser): use Browser Use CLI 3.0") e 05c5bbb1 ("refactor(browser): use CLI 3.0 MCP server") hanno eliminato lo strumento browser locale. Un elenco della directory app/tool/ su main non contiene browser_use_tool.py e l’unica occorrenza rimasta della stringa BrowserUseTool nell’albero è una riga commentata in app/agent/sandbox_agent.py.

Codice di marzo 2025 (issue #789)Attuale main, letto il 21 settembre 2026
Strumento browserClasse locale in app/tool/browser_use_tool.pyEliminato. Nell’agente Manus predefinito, un server MCP esterno avviato come uvx browser-use --cli-mcp
Nome registratobrowser_usebrowser_exec e browser_screenshot, secondo il README
Strumenti registrati localmente sull’agente ManusIncludeva lo strumento browserPythonExecute, StrReplaceEditor, AskHuman, Terminate — gli strumenti browser arrivano tramite MCP
Blocco della dipendenzaBloccato in requirements.txtNessuna voce browser-use; viene recuperato in fase di esecuzione da uvx, quindi lo stack browser è indipendente dal tuo checkout
CredenzialiLa chiave del tuo modelloLa modalità locale non richiede una chiave. La modalità cloud è un account Browser Use separato, con proprie variabili d’ambiente
Interruttore di disattivazioneRimuovere lo strumentoOPENMANUS_DISABLE_BROWSER_USE=1

Pertanto, per questa stringa specifica, oggi la soluzione è aggiornare il checkout e smettere di basarsi su tutorial scritti per il vecchio percorso del repository. È importante segnalare una precisazione anziché fare supposizioni: quando la connessione MCP fallisce, app/agent/manus.py registra Failed to connect to Browser Use CLI 3.0 e continua con i quattro strumenti locali, lasciando al modello la possibilità di nominare uno strumento browser non registrato. Se ciò produca in pratica un messaggio Unknown tool, e con quale nome, qui non è stato osservato: consideralo un punto da controllare, non un sintomo documentato. Nota inoltre che requirements.txt blocca uv>=0.6.0; non è stato verificato se un’installazione normale inserisca uvx nel tuo PATH.

Una cosa che la ricerca continuerà a mostrare e che i paragrafi precedenti deliberatamente non affermano: il repository contiene effettivamente codice browser che il percorso predefinito non carica mai. Il punto di ingresso separato del sandbox Daytona sandbox_main.py crea un agente SandboxManus che registra SandboxBrowserTool da app/tool/sandbox/sb_browser_tool.py come strumento locale, con il nome sandbox_browser, non browser_use. Quindi "nessuno strumento browser locale" è un’affermazione sull’agente Manus predefinito ottenuto da main.py, non sull’intero albero.

Un nome da tenere distinto durante la ricerca: OpenManus/OpenManus-RL è un repository separato in un’organizzazione separata, un progetto di ricerca sul reinforcement learning anziché una versione del runtime dell’agente, e la sua struttura dei file non dice nulla su nessuno dei due errori.

Che cosa cambia e che cosa non cambia un endpoint API diverso

Entrambi i sintomi descritti sopra vengono prodotti all’interno di OpenManus, quindi la risposta onesta a "un altro provider risolverà il problema?" è no. La scelta dell’endpoint influisce invece su un insieme vicino di errori che è facile interpretare erroneamente come uno di questi due.

ErroreDipende dall’endpoint?Che cosa controllare per primo
Messaggio di limite dei token di OpenManusNo — viene sollevato prima dell’invio di qualsiasi richiestaIl valore max_input_tokens configurato e se intendevi impostarne uno
Unknown toolNo — il modello ha nominato qualcosa che non è registratoQuali strumenti registra quell’agente e se il modello è abbastanza efficace nel tool calling
Rifiuto del provider per la lunghezza del contestoSìLa finestra di contesto del modello e max_tokens rispetto a essa
Un errore di autenticazione o modello non trovato alla prima esecuzioneSìL’esempio distribuito indica ancora un ID Claude che Anthropic ha ritirato il 19 febbraio 2026 — trattato in Prezzi e configurazione API di OpenManus
Un 400 su temperatureSìOpenManus invia temperature a ogni richiesta al di fuori dei suoi due ID di ragionamento codificati e distribuisce temperature = 0.0
Screenshot che non raggiungono mai il modello senza alcun avvisoParzialmenteLa visione è abilitata da una corrispondenza esatta della stringa con sei ID modello codificati, tutti quelli Anthropic ormai ritirati. È trattata anche nella pagina di configurazione

Nella quinta riga c’è un dettaglio specifico di prima parte, relativo a questo endpoint e non a un consiglio generale. Il dispatcher di Kunavo elimina temperature, top_p e top_k prima dell’inoltro, per i modelli del catalogo che dichiarano tali parametri non supportati — attualmente Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5 — e lo fa al cambio di protocollo, quindi anche ogni tentativo di retry vede il corpo già ripulito. Per ogni altro modello il campo viene inoltrato così come lo ha inviato OpenManus. Ciò elimina uno specifico 400 per quei modelli; non significa che OpenManus sia stato testato qui. Kunavo non ha testato OpenManus a runtime e nulla in questa pagina costituisce un risultato di compatibilità.

Se stai valutando i percorsi anziché eseguire il debug di uno specifico, API compatibile con OpenAI descrive ciò che il percorso generico trasporta e non trasporta, gateway LLM spiega quando vale la pena usare una sola chiave per più famiglie e ottimizzazione dei costi AI tratta la differenza tra la tariffa elencata più economica e il modo meno costoso di completare un’attività, distinzione decisiva per un ciclo dell’agente. Per la stessa categoria di diagnosi su un altro client, consulta provider OpenCode non trovato.

Stai configurando OpenManus anziché ripararlo? Il lato endpoint comprende tre campi in [llm]: model, base_url e api_key. Inizia dal quickstart, verifica la struttura della richiesta rispetto alle chat completions e crea un account Kunavo quando sei pronto a finanziare una chiave. Mantieni disponibile un percorso funzionante mentre esegui le prove e avvia un’attività con limiti definiti prima di modificare altro.

Domande frequenti

Qual è il limite di token di OpenManus?

Per impostazione predefinita non ce n'è alcuno. Il limite interno di OpenManus è il campo max_input_tokens, che app/config.py dichiara come Optional con un valore predefinito None descritto come "illimitato" e che non compare in nessun esempio di configurazione distribuito — quindi un'installazione standard non genera mai il proprio errore di limite dei token, e qualsiasi limite raggiunto proviene invece dal provider. Quando lo imposti, LLM.check_token_limit() confronta self.total_input_tokens + input_tokens con esso, rendendolo un budget cumulativo di input per l'intera esecuzione anziché un controllo del contesto per richiesta. Non è correlato alla finestra di contesto del modello, né a max_tokens, che limita una singola risposta ed è distribuito come 8192 in config/config.example.toml. Tutti e tre sono stati letti sul branch main il 21 settembre 2026.

Perché OpenManus si blocca prima di segnalare il limite di token?

Perché l'errore di limite viene ritentato, nonostante un commento affermi il contrario. Tutti e tre i decorator @retry in app/llm.py — su ask, ask_with_images e ask_tool — sono scritti come retry_if_exception_type((OpenAIError, Exception, ValueError)) con il commento finale "# Don't retry TokenLimitExceeded". TokenLimitExceeded è una sottoclasse di OpenManusError, che a sua volta è una sottoclasse di Exception, quindi la voce Exception generica lo intercetta e tenacity ritenta fino a stop_after_attempt(6), con backoff wait_random_exponential(min=1, max=60). Il gestore dell'agente conferma la struttura: app/agent/toolcall.py verifica isinstance(e.__cause__, TokenLimitExceeded), che è il modo in cui arriva un RetryError di tenacity, e solo allora stampa "Maximum token limit reached, cannot continue execution". Esiste una correzione, ma non è stata integrata: la PR #1348 è stata chiusa senza merge il 10 agosto 2026 e la sua ripresentazione #1407 era ancora aperta e senza merge il 21 settembre 2026. Questo è stato letto dal codice sorgente, non riprodotto eseguendolo.

Come posso correggere l’errore: strumento sconosciuto 'BrowserUseTool' in OpenManus?

Aggiorna il checkout, perché nel ramo main corrente di OpenManus quella classe non esiste. Lo strumento browser locale è stato rimosso il 15 agosto 2026 nei commit ab8dfe43 e 05c5bbb1; app/tool/ non contiene browser_use_tool.py e l’unica occorrenza della stringa BrowserUseTool nell’intero albero è una riga commentata in app/agent/sandbox_agent.py. Nell’agente Manus predefinito creato da main.py, le operazioni browser sono ora gestite da un server MCP esterno avviato come uvx browser-use --cli-mcp, che espone gli strumenti browser_exec e browser_screenshot; il punto di ingresso separato del sandbox Daytona, sandbox_main.py, registra ancora un proprio strumento browser locale denominato sandbox_browser. Nel codice di marzo 2025 eseguito dal segnalatore dell’issue #789, la causa era che il modello emetteva il nome della classe Python invece del nome dello strumento registrato: il suo log mostra che il passaggio immediatamente successivo veniva eseguito correttamente quando chiamava browser_use, e la riga conclusiva recita "BrowserUseTool seems not work, but browser_use can". La stringa in sé è generica: app/agent/toolcall.py restituisce f"Error: Unknown tool '{name}'" per qualsiasi nome assente da available_tools.tool_map, quindi oggi lo stesso messaggio compare per qualsiasi strumento inventato dal modello.

L’issue #789 è stata risolta? E quale versione di OpenManus contiene la correzione?

Non è stata risolta e non esiste una versione da citare. L’issue #789, "Result: Error: Unknown tool 'BrowserUseTool'", è stata aperta il 18 marzo 2025 ed era ancora aperta il 21 settembre 2026, contrassegnata come inattiva, con tre commenti: uno suggeriva un modello più potente, il segnalatore accettava di provarne uno e un bot segnalava l’inattività. La segnalazione correlata sul limite dei token, issue #779 "hitting token limit", è stata chiusa il 17 settembre 2026 dallo stesso bot di inattività con state_reason not_planned, cioè per timeout e non per una correzione. Inoltre OpenManus non ha una release corrente da nominare: i suoi unici tre tag, v0.1.0, v0.2.0 e v0.3.0, sono stati pubblicati tutti nell’arco di 34 secondi il 10 aprile 2025 e da allora non è stato creato alcun tag, quindi tutti eseguono il ramo main senza tag. Cita la data di un commit, non un numero di versione.

Cambiare provider API risolverà un errore di token o di strumenti in OpenManus?

No, ed è utile distinguere entrambe le modalità di errore da quelle che dipendono realmente dal provider. Il messaggio relativo al limite dei token indicato sopra viene prodotto dalla contabilizzazione interna di OpenManus rispetto al limite configurato dall’utente, prima dell’invio di qualsiasi richiesta, quindi nessun endpoint può modificarlo. Il messaggio Unknown tool viene prodotto dal dispatch degli strumenti di OpenManus quando il modello nomina qualcosa che non è registrato: è una proprietà della fedeltà del modello nel tool calling, e l’unico consiglio mai dato nell’issue #789 è stato provare un modello diverso proprio per questo motivo. Ciò che un endpoint diverso cambia: un rifiuto lato provider per la lunghezza del contesto arriva come OpenAIError anziché TokenLimitExceeded; una copia appena creata della configurazione di esempio fallisce con un errore del modello anziché con un errore di token, perché continua a indicare un ID Claude ritirato da Anthropic il 19 febbraio 2026; inoltre OpenManus invia sempre una temperature al di fuori dei suoi due ID di ragionamento codificati, producendo un errore assimilabile a 400 sui modelli i cui fornitori hanno deprecato quel parametro.

OpenManus conta i token nello stesso modo del mio provider?

No. OpenManus conta localmente con tiktoken e LLM.__init__ chiama tiktoken.encoding_for_model(self.model) all’interno di un try che, in caso di KeyError, ricade su cl100k_base. Per un ID Claude o Gemini, oppure per qualsiasi ID con namespace del gateway per cui tiktoken non dispone di un preset, il budget applicato da OpenManus è una stima cl100k_base anziché il conteggio del provider, e il suo TokenCounter aggiunge costanti fisse proprie: 4 token per messaggio, 2 token di formattazione, 85 per un’immagine a bassa definizione e 170 per ogni riquadro ad alta definizione. Confronta il risultato con l’utilizzo registrato dal tuo account provider, non con i totali mostrati nei log di OpenManus. Verificato sul ramo main il 21 settembre 2026, con tiktoken~=0.9.0 bloccato in requirements.txt.

Verificato il 21 settembre 2026 e non più ampiamente: app/llm.py, app/config.py, app/agent/toolcall.py, app/agent/manus.py, app/agent/base.py, app/agent/sandbox_agent.py, app/tool/sandbox/sb_browser_tool.py, sandbox_main.py, app/exceptions.py, requirements.txt, config/config.example.toml e il README sul ramo main; un elenco della directory app/tool/; la cronologia dei commit dello strumento browser eliminato; i record GitHub per le issue #779 e #789, i relativi commenti e le pull request #1348, #1391 e #1407; i metadati del repository e delle release; e la pagina di Anthropic sul ritiro dei modelli. Non è stato eseguito nulla: nessuna installazione, nessuna esecuzione di OpenManus, nessuna riproduzione di uno dei due errori e nessuna richiesta tramite OpenManus su alcun endpoint. Pertanto ogni affermazione comportamentale qui riportata deriva dalla lettura del sorgente e non da un errore osservato, e non viene riportata alcuna esecuzione minima riuscita perché non ne è stata effettuata nessuna. Le tariffe dei token Kunavo provengono dal catalogo corrente e ogni cifra in dollari è aritmetica illustrativa dei token, non il costo misurato di un’attività.